c# - EF 中的 SQL Server 校验和

标签 c# sql-server entity-framework checksum

我在 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),您就可以像这样添加 custom function:

SELECT CHECKSUM(@password)

给你 EDMX,然后你可以在 LINQ 查询中使用密码之前调用它来计算密码的校验和值。

关于c# - EF 中的 SQL Server 校验和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10713818/

相关文章:

c# - .Net CCW 无事件,免注册COM!

sql - 如何检查一个字段的前五个字符是否与另一个字段匹配?

sql-server - 如何确定 SSIS 包 (.dtsx) 是由 BIDS 2005 还是 2008 创建的?

mysql - ERD设计的正反面

c# - Entity Framework 本身引用 -> 父/子

entity-framework - Code First 迁移中不包含 StringLength 属性的更改

c# - 未引用的事件 DispatcherTimer 和垃圾收集器

c# - C#中的Excel互操作中的HRESULT代码

c# - 如何阻止 Mongodb .NET 驱动程序抛出 System.FormatException?

c# - 如何分离此 Entity Framework 模型以防止内存错误?