EF6 - 如何在映射时避免在模型中包含外键?

时间:2017-08-04 15:41:41

标签: c# entity-framework entity-framework-6

我有一个这样的应用程序:

  • EF将数据从DB加载到POCO(DAL层)
  • 这些EF POCO被映射到等效对象(业务层)
  • 对业务对象(业务层)进行了更改
  • 一旦我们准备好保存,业务对象就会映射回EF对象(DAL层)

然后在DAL层中保存时,EF加载现有的DB对象,并用等效(可能更改的)业务对象替换它们:

var thing = context.Things.First(s => s.ID == ID)
thing = Mapper.Map(changedThing, thing);
context.Entry(thing).State = EntityState.Modified

问题是我没有在我的业务对象中包含外键,因为经常不鼓励(业务层不需要关心数据库关系),因此我得到FK和对象之间的不匹配:

  

关系一端的'Something.ID'的属性值与另一端的'RelatedThing.SomethingID'的属性值不匹配。

在这种情况下,我是否被迫包括FK(并管理和更新它们),或者在这种架构下是否有更清晰的解决方案?

0 个答案:

没有答案