.net Linq-未找到或更改行
我有以下代码:.net Linq-未找到或更改行,.net,linq,linq-to-sql,.net-3.5,.net,Linq,Linq To Sql,.net 3.5,我有以下代码: Guid id = imageMetaData.ID; Data.LinqToSQL.Image dbImage = DBContext.Images.Where(x => x.ID == id).SingleOrDefault(); dbImage.width = imageMetaData.Width; dbImage.height = imageMetaData.Height; DB
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:
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,并显示以下消息。。。“未找到或更改行”检查以确保您的模型与数据库匹配。如果它们不同步,我会遇到这个问题,在大多数情况下是null-able标志。检查一下这可能的原因 我假设您使用的是.net 3.5(Visual Studio 2008)的发行版。在以下内容中找到了解决方案: (托德·弗雷诺撰稿)
通过将表从服务器资源管理器重新整理到设计器并重新生成,可以解决此错误。因此,设计器与SQL表不同步…我也遇到了同样的问题,只是删除了.dbml文件(设计器)中的表并再次从数据库中删除,然后构建了我的应用程序。它解决了我的问题。我们需要在这之前查看代码。。。如何/何时实例化datacontext?imageMetaData.ID在哪里设置?此表上有任何触发器吗?谢谢,这只是一个简单的null not set问题。必须有更好的方法保持数据库的同步!如果模式简单,请考虑从DML创建DB模式。这使DBML成为真理的源泉。为我工作。解决这种情况的最佳方法是创建一个新的LINQtoSQL文件,拖放表,然后复制生成的XML