【问题标题】:erase data-context changeset temprorary and put them back after submitchanges擦除数据上下文变更集临时并在提交更改后将它们放回去
【发布时间】:2015-11-23 18:55:38
【问题描述】:

我正在开发一个对整个项目使用单个数据上下文的项目(我们称之为“dc”)。 (请不要告诉我这是有风险的,而且 dc 的设计寿命很短,我很清楚这一点,但这不是我的决定)

所以我使用 dc 将更改提交到数据库。但问题是有时 dc.chageSet 不清楚,所以当我提交我的更改时,它也会提交一些不需要的更改。有没有办法做这样的事情:

1- 在我的函数开始时将 dc changeSet 移动到某个临时结构。

2- 进行更改并提交。

3- 将旧的 changeSet 移回 dc

或者我应该只在新 dc 上提交我的更改并刷新旧 dc?

【问题讨论】:

    标签: c# linq datacontext changeset


    【解决方案1】:

    不确定这是否是个好主意,但也许您可以编写带有过滤逻辑的存储过程,因此在 DbContext 上调用 SaveChanges 不会更新所有内容。也许添加一个“IsReadyToUpdate”属性,并且如果该属性设置为 true,则存储过程只提交更改。

    我的钱表明这比它的价值更麻烦。

    您可以四处搜索,但这里有一些链接指向将 CRUD 存储过程分配给 DbContext 映射的示例。

    http://www.dotnetodyssey.com/2015/03/12/calling-stored-procedure-from-entity-framework-6-code-first/

    http://www.entityframeworktutorial.net/EntityFramework6/code-first-insert-update-delete-stored-procedure-mapping.aspx

    https://msdn.microsoft.com/en-us/data/dn468673.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-08
      • 2011-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多