Linq - 未找到或更改行

ias*_*ons 15 .net linq .net-3.5 linq-to-sql

我有以下代码:

        Guid id = imageMetaData.ID;

        Data.LinqToSQL.Image dbImage = DBContext.Images.Where(x => x.ID == id).SingleOrDefault();

        dbImage.width = imageMetaData.Width;
        dbImage.height = imageMetaData.Height;

        DBContext.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)

查看SQL事件探查器,正在生成以下SQL:

exec sp_executesql N'UPDATE [dbo].[Images]
SET [height] = @p0, [width] = @p1
WHERE 0 = 1',N'@p0 int,@p1 int',@p0=603,@p1=365
Run Code Online (Sandbox Code Playgroud)

为什么我的where语句不包含"where id = ...."???

我究竟做错了什么?

我的应用程序抛出一个ChangeConflictException,其中包含消息......"未找到或更改行"

Rob*_*ner 38

检查以确保您的模型与数据库匹配.如果它们不同步,我会遇到这种情况,在大多数情况下是可以为空的标志.查看这篇文章可能的原因.

我假设您使用的是.net 3.5(Visual Studio 2008)的发行版.

  • 谢谢,只是一个简单的null未设置问题.必须有更好的方法来保持数据库的同步! (2认同)