【问题标题】:Mapping Linq Entities and Domain Objects and object tracking映射 Linq 实体和域对象以及对象跟踪
【发布时间】:2009-04-21 19:40:19
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • linq to sql 有跟踪。但是当我将域映射回实体时,它认为一切都改变了,即使它没有改变。如何告诉实体它不是真正的变化,反之亦然?
    【解决方案2】:

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

    查看更新 - 使用完整实体了解自己进行更改跟踪的方法。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-22
      • 2014-09-15
      • 1970-01-01
      相关资源
      最近更新 更多