1

有人可以将此代码转换为linq吗?

SELECT PWDCOMPARE('1', Password) FROM dbo.Users WHERE Username = 'Admin'

我想使用 linq 语句对用户进行身份验证。

用户密码是使用 sqlpwdencrypt函数生成的

4

1 回答 1

2

您需要做的是PWDCOMPARE在您的数据库中包装一个 UDF,然后通过您的DataContext.

http://msdn.microsoft.com/en-us/library/bb399416.aspx

所以在你的数据库上运行它:

CREATE FUNCTION fn_PWDCOMPARE (@pwd NVARCHAR(MAX),@pwdhash NVARCHAR(MAX))
RETURNS BIT
BEGIN
  RETURN PWDCOMPARE(@pwd, @pwdhash)
END

然后将它添加到你DataContext在 Visual Studio 中并像这样调用它

var query =
  from user in db.Users
  where user.Username = "Admin"
  select db.fn_PWDCOMPARE("1", user.Password);
于 2012-04-11T09:58:53.363 回答