作为 linq 和实体框架的新手,这让我很困惑:
我通过实体框架创建了我的数据库的一个模型(一小部分),三个表在两个直接的 1:n 关系中:文件夹-> 1:n ->合同-> 1:n -> “测量”点
我正在寻找一种语法,它允许从我迭代的文件夹对象开始,并将点(如果存在)返回到我在文件中找到的字符串,按名称进行比较。我想完全忽略中层合约,只在所有合约中找到低一级的点。
我可以通过像这样遍历每个合同来做到这一点:
foreach (Contract contract in folder.Contract)
{
Point point = contract.Point.SingleOrDefault(p => p.Pointname == pointname);
if (point != null)
{ ... other code
}
}
我想跳过合同的 foreach,但我无法正确使用语法。我试过这些:
Point point = folder.contract.SelectMany("???").Point.SingleOrDefault(p => p.Pointname == pointname)
Point point = folder.contract.All(c => c.Point.SingleOrDefault(p => p.Pointname == pointname))
两者都无法编译,但肯定有一种简单的方法可以做到这一点?
谢谢!
拉尔夫