【问题标题】:Not sure how to fix this weird Entity Framework (relationship/navigation) error不知道如何修复这个奇怪的实体框架(关系/导航)错误
【发布时间】:2011-03-24 18:01:02
【问题描述】:

当我尝试使用实体框架作为 OR/M 保存 poco 实体时,我不断收到以下错误消息:-

“SqlServerContext.Foos”中的实体参与“FK_Foos_Bahs”关系。找到 0 个相关的“呸”。预计会出现 1 个“呸”。

好的-错误消息是有道理的-但这不是我建模的:((或正在尝试建模)。也就是说,如果我想保存Foo,那么我需要一个@ 实例987654325@。Foo 可以在没有Bah 的情况下存在。关系应该是1 <-> 0-or-1 .. 而不是1 <-> 1

这是 EF 中的模型 ...

谁能看到我做错了什么?

【问题讨论】:

    标签: c# .net asp.net entity-framework-4


    【解决方案1】:

    您的模型可能是错误的。目前您说Bah 是许多Foos 的主要实体。这是一对多的关系,而不是一对一的关系。此外,您在 Foo 中将 Bah 定义为强制,因为 Bah 的多重性是 1 而不是 0..1

    【讨论】:

      【解决方案2】:

      看起来你们的关系是前后颠倒的 - 你的屏幕截图显示 1 Bah 有很多 Foo,而 Foo 正好有 1 Bah - 听起来你需要交换两端,以便 1 Foo 可以有很多 Bah 而 Bah 有正好 1 Foo。

      您还可以进行 0...1 对多的关系(每个 Bah 可以有许多 Foo,Bah 有 0 或 1 个 Foo),或 0...1 对 1 的关系。 .Net 将在数据库中创建可空字段并在模型中创建可空属性,并且您可以在没有关联的情况下保存数据。

      我知道您可能正在处理敏感数据,因此会出现空白,但如果您将其换成更有意义的假数据,您可能会更容易理解您要做什么! Foo 和 Bah 的演示不如 People and Pets 或 Hobbies 等同样经过消毒的东西那么直观。

      【讨论】:

      • 现在将 Bah 0-1 设为可选 :) 不知道为什么 EF 首先不这样做...(当我从数据库生成模型时)。
      猜你喜欢
      • 1970-01-01
      • 2019-09-01
      • 2016-10-09
      • 1970-01-01
      • 2019-09-04
      • 2015-07-06
      • 2020-01-05
      • 2018-03-10
      • 2012-08-10
      相关资源
      最近更新 更多