[英]How to use sql IN statement in linq lambda with 2 statements
我的声明是
Contents.
Select(x=> new
{
ContentUsers = x.ContentUsers.
Where(t=>t.UserId==2).
Select(t=>t.ContentId)
}).
Where(y=>y.ContentUsers.Any())
它给了我一些我想在其他声明中使用它的ID。
Contents.Where(x=>x.Id == 633,634,635)
我如何合并它们?
您缺少的是Contains
函数。 在单个查询表达式中表达它可能会更简单。 如果将您的代码转换为单个查询表达式,则看起来像这样:
var content =
from c in Contents
let contentUsers =
from x in Contents
select new
{
ContentUsers =
from t in x.ContentUsers
where t.UserId == 2
select t.ContentId
}
where contentUsers.Any(cu => cu.ContentUsers.Contains(c.Id))
select c;
但是,您似乎想要的只是获取与ContentUsers
集合中与给定UserID
关联的Content
记录。 这要容易得多。
var content =
from c in Contents
where c.ContentUsers.Any(t => t.UserId == 2)
select c;
或者如果您愿意
var content = Contents.Where(c => c.ContentUsers.Any(t => t.UserId == 2));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.