2013-10-23 171 views
0

我们在n层设置(Silverlight/WCF)中使用实体框架5代码优先。实体框架 - 没有实体引用的模型FK关联?

为了简化我们的实体图的这种情况下,我们不使用导航属性的关联不依赖于根实体的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是FK到BusinessUnit,并且从数据库中收到错误。

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

回答

0

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