Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
Entity framework LINQ不包含创建like语句_Entity Framework_Linq To Entities - Fatal编程技术网

Entity framework LINQ不包含创建like语句

Entity framework LINQ不包含创建like语句,entity-framework,linq-to-entities,Entity Framework,Linq To Entities,我已经有一段时间没有使用实体框架和LINQ了。我正在尝试执行类似SQL的查询。这在通过父表中的外键定义的一对多关系中工作良好 myEntity.Where(me => me.relatedEntity.Name.Contains("a"); 这可以正确地转换为SQL中的like。但是,当我通过连接表查询多对多关系时,它会在SQL中创建一个equals语句 var name = "bo"; myEntity.Where(me => me.Users.Select(u => u.

我已经有一段时间没有使用实体框架和LINQ了。我正在尝试执行类似SQL的查询。这在通过父表中的外键定义的一对多关系中工作良好

myEntity.Where(me => me.relatedEntity.Name.Contains("a");
这可以正确地转换为SQL中的like。但是,当我通过连接表查询多对多关系时,它会在SQL中创建一个equals语句

var name = "bo";
myEntity.Where(me => me.Users.Select(u => u.Name).Contains(name));
我错过了什么明显的东西吗


谢谢

这是正确的,在第一个查询中,源是字符串,第二个查询中,源是字符串的集合。我想你要找的是:

var r=myEntity.Where(me => me.Users.Any(u => u.Name.Contains(name)));

如果您希望所有用户都包含一些字符串模式,则使用all extension方法,而不是Any。

第二个版本检查名称集合中的任何实体是否“包含”了确实相等的名称。你应该使用me.Users.Anyu=>u.Name.containsnamank谢谢,已经有一段时间了