假设我有表A有很多表B.表B只有一个表A.
现在说表B有一个名为Name的属性。如何在linq中执行以下操作。
获取表B具有名称==“bob”的所有表A,然后获得表A中的所有表B.
实施例
Table B
Name TableA_Id
bob 1
bob 1
bob 1
jim 1
jon 2
因此,如果我要查询,我会想要一个表A对象,其中包含3个表B对象。
我试过
session.Query<TableB>().where(x => x.Name == "bob").select(x => x.TableA)
session.Query<TableA>().where(x => x.TableB.where(d => d.Name == "bob") // can't do this since it is a collection
我不能做其中任何一个,因为它要么不编译,要么它返回到许多TableA(我认为)是什么给了我意想不到的结果。
答案 0 :(得分:2)
我相信你可以做到:
var tableBs = session.Query<TableA>()
.Where(a => a.TableBs.Any(b => b.Name == "bob"))
.SelectMany(a => a.TableBs);