LINQ包含不创建like语句

时间:2017-04-10 13:38:39

标签: entity-framework linq-to-entities

自从我使用了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));

我错过了一些明显的东西吗?

由于

1 个答案:

答案 0 :(得分:1)

这是正确的,在你的第一个查询中,source是一个字符串,第二个是source是字符串的集合。我认为你在寻找的是:

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

如果您希望条件是所有用户都包含某些字符串模式,请使用All扩展方法代替Any