gpt4 book ai didi

c# - Linq To SQL select 语句转换为 Where 0 = 1

转载 作者:行者123 更新时间:2023-11-30 14:34:37 25 4
gpt4 key购买 nike

我有以下 Linq to SQL 查询。

var users = rdc.Users.Where(u => u.EmailAddress.Equals(emailaddress) && password.Equals(hash));

但它总是转化为:

SELECT [t0].[Id], [t0].[Guid], [t0].[RoleId], [t0].[EmailAddress], [t0].[Password], [t0].[FirstName], [t0].[LastName], [t0].[Created], [t0].[Activated], [t0].[LastAction]
FROM [dbo].[Users] AS [t0]
WHERE 0 = 1

我只是将表重新导入我的 DBML 文件以确保反射(reflect)最新的模式,但它仍然删除了我的子句并添加了 WHERE 0 = 1

我可以使用 ExecuteQuery<T>(string, params[])但我想找到这个问题的根本原因。

最佳答案

hashpassword 是否定义在这一行之上?看起来您可能忘记了在查询中添加 u.。如果 password 已经定义,那么您不会看到错误,但它永远不会等于 hash

你的意思是写:

var users = rdc.Users.Where(u => u.EmailAddress == emailaddress && u.Password == hash);
^^^

此外,@Mark 指出使用 == 运算符会显示 .Equals 运算符可能会忽略的错误。

关于c# - Linq To SQL select 语句转换为 Where 0 = 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13693025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com