3

次のLinqtoSQLクエリがあります。

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ファイルに再インポートしましたが、それでも句が削除され、追加されますWHERE 0 = 1

使用できますExecuteQuery<T>(string, params[])が、根本的な原因を突き止めたいと思います。

4

1 に答える 1

6

hashこの線の上にpassword定義されていますか?u.クエリにを追加するのを忘れたようです。がすでに定義されている場合password、エラーは表示されませんが、に等しくなることはありませんhash

あなたは書くつもりでしたか:

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

また、@ Markは、演算子を使用すると、演算子が無視する可能性==のあるエラーが表示されることを指摘しました。.Equals

于 2012-12-03T22:42:58.440 に答える