0

我们在 n 层设置 (Silverlight/WCF) 中使用 Entity Framework 5 Code First。

为了简化我们在这种情况下的实体图,我们不使用不依赖于根实体 PK 的关联的导航属性,只映射 FK 属性,例如:

Deal
 - PaymentScheduleID (FK property)
 - PaymentSchedule (dependent on Deal so we need to use navigation property)
 - BusinessUnitID (FK property, Deal is optionally dependent on BusinessUnit)

在此示例中,PaymentSchedule 是对仅根据父交易定义的实体的引用,因此我们使用导航属性和 FK 属性以及使用 Fluent API 的关联映射。

如果我们添加一个带有新付款计划的交易,EF 将根据我们的关联映射计算出它需要在插入交易之前插入 PaymentSchedule,这正是我们想要的。

但是,如果我还需要添加新的 BusinessUnit,EF 可能会将插入的顺序错误,因为它不知道 BusinessUnitID 是 BusinessUnit 的 FK,并且我从数据库中收到错误。

有什么方法可以告诉 EF 数据库中存在 FK 关联而不需要模型上的导航属性?我看不到任何使用 Fluent API 的方法。

4

1 回答 1

0

实际上,您可以使用从 Deal 到 BusinessUnit 的单向导航,而不是完全跳过 Deal 和 BusinessUnit 之间的导航属性,但 BusinessUnit 不会收集对 Deals 的引用。Deal.BusinessUnit 属性可以为空,因为 FK 是可选的。

于 2013-10-31T16:32:41.290 回答