Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何对列的md5执行EntityFramework查询_C#_Mysql_Entity Framework - Fatal编程技术网

C# 如何对列的md5执行EntityFramework查询

C# 如何对列的md5执行EntityFramework查询,c#,mysql,entity-framework,C#,Mysql,Entity Framework,如何使用实体框架(linq或lambda)执行此查询: 这是一个简化的查询示例,而不是实际问题 数据库是MySQL,我使用的是mysqlconnector 6.7.4,您可以这样使用 context.ExecuteStoreQuery<your_user_class>("SELECT * FROM user WHERE md5(email) = '9d6e1c44328f4d628ffb0cacbe6b5c44';"); context.ExecuteStoreQuery(“从md

如何使用实体框架(linq或lambda)执行此查询:

这是一个简化的查询示例,而不是实际问题

数据库是MySQL,我使用的是mysqlconnector 6.7.4,您可以这样使用

context.ExecuteStoreQuery<your_user_class>("SELECT * FROM user WHERE md5(email) = '9d6e1c44328f4d628ffb0cacbe6b5c44';");
context.ExecuteStoreQuery(“从md5(电子邮件)='9d6e1c44328f4d628ffb0cacbe6b5c44';的用户中选择*”;

只是想澄清一下:哈希值没有存储在数据库中,对吗?如果是这样,你能添加一个散列字段吗?那会让你的生活更轻松。不,哈希没有存储,我希望避免存储它。。。但我明白你的意思,问题是EF根本不知道任何dbms的数据库功能。因此,与仅将电子邮件散列存储在单独的列中相比,任何缺少通过EF进行sql查询的解决方案都将相当混乱,可能不值得花费时间。否则,您可以将整个resultset放入内存,并完全在代码中进行哈希比较,但这可能会非常低效,具体取决于您的users表的大小。我明白了,所以选项是存储哈希,使用EF或存储过程创建普通sql查询。谢谢
context.ExecuteStoreQuery<your_user_class>("SELECT * FROM user WHERE md5(email) = '9d6e1c44328f4d628ffb0cacbe6b5c44';");