sol*_*man 9 c# sql-server linq-to-sql
我正在使用LINQ to SQL更新类型X的对象及其子Y,然后提交更改并获取此错误
示例代码
X objX = _context.X.ToList().Where(x => x.DeletedOn == null).First();
objX.DeletedOn = DateTime.Now;
EntitySet<Y> objYs = objX.Ys;
Y objY = objYs[0];
objY.DeletedOn = DateTime.Now;
_context.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)
在SubmitChanges()上,我得到一个异常"1 of 2 Updates failed",没有其他信息说明为什么会发生这种情况.有任何想法吗?
另外,异常类型是ChangeConflictException
sol*_*man 12
Sooo问题的原因是什么 - 触发器
我做了一个SQL分析器,看到了
当ObjY的DeletedOn属性更新时,触发器更新了ObjX的属性(表中的值),称为CountOfX
由于LINQ to SQL创建的SQL中包含旧的CountOfX值,导致出现错误.
因此冲突.
如果您遇到此错误 - SQL分析器是开始调查的最佳位置
与问题无关 我正在测试LINQ to SQL和ADO.net Framework,奇怪的是这个错误发生在LINQ to SQL中,而不是发生在ADO.net框架中.但我喜欢LINQ to SQL for Lazy Loading.等待EF获得测试版
| 归档时间: |
|
| 查看次数: |
9410 次 |
| 最近记录: |