实体框架 - 没有实体引用的模型FK关联?

时间:2013-10-23 00:22:43

标签: entity-framework-5

我们在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将根据我们的关联映射计算出它需要在插入Deal之前插入PaymentSchedule,这是我们想要的。

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

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

1 个答案:

答案 0 :(得分:0)

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