c# - LINQ to SQLite无法更新:“存储更新,插入或删除语句影响了意外的行数”

标签 c# .net linq sqlite system.data.sqlite

使用System.Data.SQLite和LINQ to Entities,我无法进行简单的更新。

此代码

using (Entities context = new Entities()) {
    var Obj = context.MyTable.Where(m => m.Title.StartsWith("Alaska")).FirstOrDefault();
    Obj.Artist = "A";
    context.SaveChanges();
}


引发此异常

A first chance exception of type 'System.Data.Entity.Infrastructure.DbUpdateConcurrencyException' occurred in EntityFramework.dll

Additional information: Store update, insert, or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities were loaded. Refresh ObjectStateManager entries.


我怎样才能解决这个问题?

我处于一个隔离的测试项目中,因此没有其他事情在发生。

最佳答案

该数据库是从SQL Server数据库自动进行的转换,结果表明SQLite不支持UNIQUEIDENTIFIER数据类型,但是该表仍然具有定义为UNIQUEIDENTIFIER的列和主键。每当我更新具有UNIQUEIDENTIFIER键的表时,都会出现此错误。使用INT键更新表时,还可以。

解决方案是将这些列的数据类型更改为TEXT。然后,在.NET映射类中,数据类型从Guid更改为String,因此我不得不相应地修改代码,但现在可以使用了。

关于c# - LINQ to SQLite无法更新:“存储更新,插入或删除语句影响了意外的行数”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30541331/

相关文章:

c# - 使用 LINQ 在多个属性中查找重复项

c# - 能否在 ASP.NET MVC 中重载 Controller 方法?

javascript - Unity - 与客户端 Javascript 和 ajax 通信。如何将数据从统一传回网页?

c# - 带分组依据和字符串变量的 LINQ 动态查询

c# - 如何附加到表达式

c# - ERPTable 列被截断

c# - 从 JSON 数组中提取头发颜色

c# - 使用上传字段时 Azure 上的超时

c# - 在图表控件上显示鼠标轴坐标

c# - 将 Last 属性添加到 System.Array 的最佳方法是什么?