Entity framework LINQ不包含创建like语句
我已经有一段时间没有使用实体框架和LINQ了。我正在尝试执行类似SQL的查询。这在通过父表中的外键定义的一对多关系中工作良好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.
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谢谢,已经有一段时间了