我有一个这样的应用程序:
然后在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(并管理和更新它们),或者在这种架构下是否有更清晰的解决方案?