【问题标题】:Linq Update Query generates Where 0 = 1?Linq 更新查询生成 Where 0 = 1?
【发布时间】:2010-02-17 02:56:10
【问题描述】:

我正在设置由 Linq 2 Sql 生成的类的地址,当我尝试 SubmitChanges() 时,它生成的 sql 查询是:

Update Users
Set Address = @po
Where 0 = 1
--@po: Input VarChar (Size = 15; Prec = 0; Scale = 0) [123 45th Street]

我不知道为什么我会得到 Where 0 = 1。

【问题讨论】:

标签: asp.net linq-to-sql


【解决方案1】:

当您的对象模型与数据库不同时,可能会发生这种情况即使只有一个属性

Address 是否可能在数据库中而不是在您的模型中为空,或者相反?或者类型不同,比如 ntext vs nvarchar 等?在某些情况下,它可能是另一个不相关的属性...回想一下您对数据库或模型所做的最后一次更改,确保它是同步的。

【讨论】:

  • 我会看一下,但这是我要更新的表上的一个属性还是整个数据库之间的区别?
  • @Xaisoft - 几乎总是与您正在更新的表相关,但我见过奇怪的事情发生。
  • +1。可能对其他人有帮助:更新在数据上下文中错误声明为不可为空的列中使用空值检索的行时出现此错误。
  • 这也是我的错误。我翻转了一个字段的可为空属性。但是为什么这会导致无效的 where 子句?向我抛出错误Linq,我可以接受。但是不要仅仅为了好玩而生成无效的 where 子句。很难追踪。
猜你喜欢
  • 2013-09-16
  • 1970-01-01
  • 2015-12-13
  • 2020-10-24
  • 1970-01-01
  • 2012-04-19
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
相关资源
最近更新 更多