使用md5 hash ADO.Net EF选择记录

时间:2014-07-08 09:03:53

标签: entity-framework

我在数据库中有纯文本的记录。 从外部源我得到字符串值的md5哈希。

Entities DB = ...
DB.SomeObjects.FirstOrDefault(p => p.PlainTextValue == md5HashedValue);

如何将此PlainTextValue转换为md5?

1 个答案:

答案 0 :(得分:0)

这是一个糟糕的实施。要使用它,您需要从DB读取所有行,在应用程序端计算其MD5,并将它们与提供的值进行比较。每次执行此查询时都会发生这种情况。这是因为DB没有办法进行计算,因此无法将查询转换为SQL查询。 (如果它不够清楚:你只能读取数据库中的所有文本,将它们存储在列表或某个地方,然后,在应用程序中,每次都计算所有的哈希值)

理想的解决方案是在数据库,新列或相关表上计算MD5,以避免重复计算,并且必须读取并将所有文本传输到应用程序。 (然后,每当文本更改或插入新文本时,计算哈希值,并将其存储在数据库中)。

要使用C#计算MD5,您可以查看this SO Q&A