我正在开发一个使用SQL-Server数据库和数据库实体的ASP.Net应用程序。 此外,我有三个数据库实体相互依赖。 这是依赖关系层次结构:
我可以通过InstanceID找到实体CustomField中的条目:
var customFieldEntries = DB_Instance_Singleton.getInstance.CustomField.Where(x => x.InstanceID == instanceId);
现在我想查找CustomFieldData_Person中属于以InstanceID为键的层次结构的所有条目。
在SQL中我会写这样的东西:
SELECT * FROM CustomFieldData_Person WHERE CustomFieldDataID in (
SELECT * FROM CustomFieldData WHERE CustomFieldID in (
SELECT * FROM CustomField WHERE InstanceID = instanceId))
不幸的是,我对LINQ完全不熟悉。 所以我的问题是,如何在LINQ中编写这样的嵌套查询(根据上面的第一个代码示例)?
提前致谢!
答案 0 :(得分:1)
首先,如果您正确创建了ER模型,那么您已经为您设置了大部分逻辑
Person将拥有一个属性Person.CustomData,它具有Field和Value的属性,因此您可以只导航对象结构
但是如果你没有,那么你可以将in语句转换为Contains
CustomFieldData_Person.Where(cfdp=>CustomFieldData.Where(nested query for CustomFieldData).Contains(cfdp.CustomFieldDataID )
答案 1 :(得分:0)
我认为这link可能是您提问的一个很好的起点。无论如何看看Pranav的评论,它指出一个有用的问题