我们在 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 的方法。