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

映射Linq实体和域对象以及对象跟踪,linq,linq-to-sql,design-patterns,domain-driven-design,Linq,Linq To Sql,Design Patterns,Domain Driven Design,如果我将域对象映射到linq实体,那么在保存域对象时,我现在是否无法跟踪更改?因此,对于我希望在模型中进行的任何更改,一旦我将对象映射到linq实体以提交给db,所有对象值都将由linq提交给db,因为它首先经过映射?或者,这里的对象跟踪功能是否仍然可用?取决于您使用的O/R映射器。您指的是实体框架,它在实体内部不进行任何更改跟踪,因此,当您重新附加以前从db获取的实体时,它需要您的帮助(因此它知道它不是新的) 这里有一个关于多层环境中CRUD操作的示例(与您的域映射场景类似) 查看更新-完整的

如果我将域对象映射到linq实体,那么在保存域对象时,我现在是否无法跟踪更改?因此,对于我希望在模型中进行的任何更改,一旦我将对象映射到linq实体以提交给db,所有对象值都将由linq提交给db,因为它首先经过映射?或者,这里的对象跟踪功能是否仍然可用?

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

这里有一个关于多层环境中CRUD操作的示例(与您的域映射场景类似)

查看更新-完整的实体,了解自己跟踪更改的方法


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

linq to sql具有跟踪功能。但当我将域映射回实体时,它会认为所有内容都已更改,即使没有更改。如何告诉实体它不是真正的变化,反之亦然?