Jer*_*oyd 3 c# sql-server linq-to-sql
我有以下Linq to SQL查询.
var users = rdc.Users.Where(u => u.EmailAddress.Equals(emailaddress) && password.Equals(hash));
Run Code Online (Sandbox Code Playgroud)
但它总是转化为:
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
Run Code Online (Sandbox Code Playgroud)
我只是将表重新导入到我的DBML文件中以确保反映最新的模式,但它仍然删除了我的子句并添加 WHERE 0 = 1
我可以使用,ExecuteQuery<T>(string, params[])但我想找到这个的根本原因.
是hash和password这条线以上定义的?看起来您可能忘记u.在查询中添加.如果password已经定义,那么你不会看到错误,但它永远不会相等hash.
你的意思是写:
var users = rdc.Users.Where(u => u.EmailAddress == emailaddress && u.Password == hash);
^^^
Run Code Online (Sandbox Code Playgroud)
此外,@ Mark指出使用==运算符将显示.Equals运算符可能忽略的错误.
| 归档时间: |
|
| 查看次数: |
988 次 |
| 最近记录: |