首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Linq -未找到行或行已更改

Linq -未找到行或行已更改
EN

Stack Overflow用户
提问于 2009-02-03 21:46:36
回答 3查看 11.4K关注 0票数 15

我有以下代码:

代码语言:javascript
复制
        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 Profiler,将生成以下SQL:

代码语言:javascript
复制
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 ...“未找到或未更改行”

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-02-03 22:11:09

检查以确保您的模型与数据库匹配。我遇到过这种情况,如果它们不同步,在大多数情况下是nullable标志。请查看此article以了解可能的原因。

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

票数 38
EN

Stack Overflow用户

发布于 2011-06-16 23:55:42

找到解决方案的网址:http://social.msdn.microsoft.com/Forums/en-US/linqprojectgeneral/thread/c672c8ee-bf2a-41b4-bb8b-aa76cc5d9b95 (由Todd Fleenor发布)

通过将表从服务器资源管理器重新拖动到设计器并重新生成,可以解决此错误。因此设计器与SQL表不同步...

票数 1
EN

Stack Overflow用户

发布于 2012-08-29 16:17:32

我遇到了同样的问题,只是删除了.dbml文件(设计器)中的表,并再次从数据库中删除,然后构建了我的应用程序。它解决了我的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/509045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档