我尝试创建一个语句,我从ID开始,在table1中选择一个对象,然后从该对象中获取2个新ID,并使用它们在table2中查找2个不同的对象。 />
我的目标是最终得到一个匿名对象,该对象具有table1中的对象和table2中的2个对象,即(table1.object, table2.object1, table2.object2)
。
我不知道这是否可以在一个声明中完成。
到目前为止我得到了这个,但它只给了我table1.object
和table2.object1
,而不是table2.object2
:
db.Person.Where(x => x.Id == myId)
.SelectMany(p => db.OtherPerson
.Where(o=> p.OhterP1_Id1 == o.Id).DefaultIfEmpty(),
(p, o) => new {pers = p, otherP = o})
答案 0 :(得分:3)
这就是你想要的:
var result = db.Person.Where(x => x.Id == myId)
.Select(p => new {
pers = p,
otherP1 = db.OtherPerson.SingleOrDefault(o => p.OhterP1_Id1 == o.Id),
otherP2 = db.OtherPerson.SingleOrDefault(o => p.OhterP1_Id2 == o.Id)
}).SingleOrDefault();