映射Linq实体和​​域对象以及对象跟踪

时间:2009-04-20 21:40:14

标签: linq linq-to-sql design-patterns domain-driven-design

如果我将我的域对象映射到linq实体,我现在无法在保存域对象时跟踪更改吗?因此,对于我希望制作的模型中的任何更改,一旦我将对象映射到linq实体以提交给db,所有对象值将由linq提交给db,因为它首先通过映射?或者仍然可以利用此处的对象跟踪?

2 个答案:

答案 0 :(得分:1)

取决于您正在使用的O / R映射器。您指的是在实体内部不进行任何更改跟踪的实体框架,因此当您重新附加以前从数据库中获取的实体时,它需要您的帮助(因此它知道它不是新的)。

答案 1 :(得分:1)

这是关于多层环境中CRUD操作的article from microsoft(与您的域映射方案类似的问题)。

查看更新 - 使用完整实体自行更改跟踪的方式。

还有另一种技术,你将实体附加为未经修改的,然后使用Keep Current Values添加.Refresh() - 替换原始实体。这将允许您以数据库往返为代价插入/更新/不执行任何操作。