Linq Update Query生成Where 0 = 1?

Xai*_*oft 14 asp.net linq-to-sql

我正在设置由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]
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚为什么我得到的地方0 = 1.

Nic*_*ver 21

当您的对象模型与数据库的差异甚至是一个属性时,就会发生这种情况.

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

  • +1.可以帮助其他人:更新在数据上下文中错误地声明为不可空的列中使用空值检索的行时出现此错误. (2认同)
  • 这也是我的错误.我翻了一个字段的可空属性.但是为什么这会导致无效的where子句呢?向Linq投掷错误,我可以接受.但是为了好玩,不要生成无效的where子句.追踪很难. (2认同)