我在'Edital'和'Graduando'之间有多对多,我创建了一个名为'EditalGraduando'的实体。现在我想知道'graduando'使用graduando id订阅的每个'edital'。所以我这样做了:
public IQueryable<int> GetGraduandosIds(int editalId)
{
var graduandosId = db.EditalGraduandoe.Where(e => e.EditalId == editalId).Select(i => i.graduandoID);
return graduandosId;
}
有一种方法可以使用此结果在entety'Graduando'中进行选择吗?像这样:SQL WHERE ID IN (id1, id2, ..., idn)
答案 0 :(得分:2)
是的,你可以这样做:
public IQueryable<Graduandoe> GetGraduandos(IEnumerable<int> graduandosIds)
{
return db.Graduandoe.Where(g => graduandosIds.Contains(g.graduandoID));
}
或者,您可以拥有导航属性,并且可以编写以下代码而不是两个函数:
public IQueryable<Graduandoe> GetGraduandos(int editalId)
{
return db.EditalGraduandoe.Where(e => e.EditalId == editalId).Select(i => i.Graduandoe);
}