LINQ 包含不创建类似语句

LINQ contains not creating a like statement

我已经有一段时间没有使用实体框架和 LINQ 了。我正在尝试执行类似 SQL 的查询。这在通过父 table.

中的外键定义的一对多关系中工作正常
myEntity.Where(me => me.relatedEntity.Name.Contains("a");

这正确地翻译成了 SQL 中的赞。但是,当我通过联结 table 查询多对多关系时,它会在 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 扩展方法代替 Any