擦除数据上下文变更集临时,并在子切换后将其放回
本文关键字:上下文 数据 擦除 | 更新日期: 2023-09-27 18:24:09
我正在处理一个项目,该项目对整个项目使用一个单独的数据上下文(我们称之为"dc")。(请不要告诉我这有风险,dc的设计寿命很短,我很清楚,但这不是我的决定)
所以我使用dc向数据库提交更改。但问题是有时dc.chageSet不清楚,所以当我提交更改时,它也会提交一些不需要的更改。有什么方法可以做这样的事情吗:
1-在我的函数启动时,将dc changeSet移动到一些临时结构。
2-做出更改并提交。
3-将旧的变更集移回dc
或者我应该在新dc上提交我的更改并刷新旧dc吗?
不确定这是否是个好主意,但也许您可以编写带有过滤逻辑的存储过程,因此在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