当前位置:  开发笔记 > 数据库 > 正文

Linq - 未找到或更改行

如何解决《Linq-未找到或更改行》经验,为你挑选了1个好方法。

我有以下代码:

        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();

查看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

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

我究竟做错了什么?

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



1> Robert Wagne..:

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

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


谢谢,只是一个简单的null未设置问题.必须有更好的方法来保持数据库的同步!
推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有