要在此处添加其他答案,如果您想使用 where 子句创建第三种不同类型的新对象(例如,不是您的实体框架对象的对象),您可以这样做:
public IEnumerable<ThirdNonEntityClass> demoMethod(IEnumerable<int> property1Values)
{
using(var entityFrameworkObjectContext = new EntityFrameworkObjectContext )
{
var result = entityFrameworkObjectContext.SomeClass
.Join(entityFrameworkObjectContext.SomeOtherClass,
sc => sc.property1,
soc => soc.property2,
(sc, soc) => new {sc, soc})
.Where(s => propertyValues.Any(pvals => pvals == es.sc.property1)
.Select(s => new ThirdNonEntityClass
{
dataValue1 = s.sc.dataValueA,
dataValue2 = s.soc.dataValueB
})
.ToList();
}
return result;
}
请特别注意在 Where 和 Select 子句中创建的中间对象。
请注意,这里我们还查找任何具有与输入列表中的一个匹配的 property1 的连接对象。
我知道这比最初的提问者所寻找的要复杂一些,但希望它会对某人有所帮助。