自从我使用了Entity Frameworks和LINQ以来已经有一段时间了。我试图执行类似SQL的查询。这适用于通过父表中的外键定义的一对多关系。
myEntity.Where(me => me.relatedEntity.Name.Contains("a");
这正确地转换为SQL中的类似内容。但是,当我通过联结表查询多对多关系时,它会在SQL中创建一个equals语句。
var name = "bo";
myEntity.Where(me => me.Users.Select(u => u.Name).Contains(name));
我错过了一些明显的东西吗?
由于
答案 0 :(得分:1)
这是正确的,在你的第一个查询中,source是一个字符串,第二个是source是字符串的集合。我认为你在寻找的是:
var r=myEntity.Where(me => me.Users.Any(u => u.Name.Contains(name)));
如果您希望条件是所有用户都包含某些字符串模式,请使用All
扩展方法代替Any
。