EF 中的 SQL Server 校验和
本文关键字:校验和 Server SQL 中的 EF | 更新日期: 2023-09-27 18:35:06
我在SQL Server中有一个这样的表:
用户 :
int ID PK Identity
nvarchar(50) Username
nvarchar(50) Password
我将校验和字符串存储在Password
列中,并使用此方法对密码进行哈希处理,并将它们存储在我的表中
现在我想像这样在 EF 中使用这个表;
User = DBContext.Users.SingleOrDefault(rec => rec.Username == Request["U"] && rec.Password == Request["P"]);
但是因为我将校验和值存储在我的表中,所以我必须更改Request["P"]
才能在 EF 中使用它
对不起,我是英语新手,你发现我在说什么了吗?(我希望我能清楚地解释我的问题:(
UPDATE1:如果我有这样的查询:
Select * from Users where username = @p1 and password = checksum(@p2)
我如何将@p2转换为使用该查询,如下所示:
Select * from Users where username = @p1 and password = @p2 --Checksum omitted
只要您使用的是数据库优先(这意味着您有 EDMX),就可以添加如下自定义函数:
SELECT CHECKSUM(@password)
到EDMX,然后您可以在LINQ查询中使用密码之前调用它来计算密码的校验和值。