- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我收到了 InvalidOperationException
尝试使用 LinqToSql 添加行时。我们无法在内部复制它,并且只有我们的一个客户发生了大约 0.06%,总是对数据库进行相对简单的更改。 (单行插入,或单字段更新)
Message:
This SqlTransaction has completed; it is no longer usable.
Stack Trace:
at System.Data.SqlClient.SqlTransaction.ZombieCheck()
at System.Data.SqlClient.SqlTransaction.Rollback()
at System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode)
TableName row = new TableName();
row.Description = "something";
row.Action = "action";
Context.TableName.InsertOnSubmit(row);
Context.SubmitChanges();
最佳答案
需要注意的一件事是 LinqToSql(和 EntityFramework)默认会分配 null
至 DateTime
数据对象中的字段,因此如果您的表有 datetime
如果 datacontext 尝试插入该空值,它将在插入时抛出异常。
您可以使用 datetime2
解决此错误。输入 MSSQL(这将允许 DateTime
对象的“空”值 - 01/01/0001
)或手动为数据对象的 DateTime
分配一个有效日期插入/更新之前的字段。
如果没有更详细的堆栈跟踪,这是唯一想到的明显问题。哈。
编辑:
看起来这并不少见:http://connect.microsoft.com/VisualStudio/feedback/details/588676/system-data-linq-datacontext-submitchanges-causes-invalidoperationexception-during-rollback#details
根本问题似乎是 LinqToSql 使用的内部 ADO 逻辑没有真正正确配置来处理事务回滚。据我所知,唯一真正的解决方案是向 LinqToSql 提供一个事务对象并自己管理回滚,这似乎并不那么吸引人。
关于c# - Linq DataContext SubmitChanges InvalidOperationException from ZombieCheck,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15346402/
我收到了 InvalidOperationException尝试使用 LinqToSql 添加行时。我们无法在内部复制它,并且只有我们的一个客户发生了大约 0.06%,总是对数据库进行相对简单的更改。
我有以下代码,用于将单行提交到数据库表(SQL 2008/.NET 4) using (var db = new MyDbDataContext(_dbConnectionString)) {
我是一名优秀的程序员,十分优秀!