2016-05-27 45 views
0

我正在使用SQL-Server DB和數據庫實體的ASP.Net應用程序。另外我得到了三個彼此依賴的數據庫實體。 這是依賴層次:我可以在LINQ中對數據庫實體使用嵌套查詢嗎?

  • 實例(註釋:實例id)
    • 的CustomField(註釋:CustomFieldID,實例id)
    • CustomFieldData(按鍵:CustomFieldDataID,CustomFieldID)
      • CustomFieldData_Person( Keys:CustomFieldData_PersonID,CustomFieldDataID)

我可以用實例id找出從實體的CustomField條目本:

var customFieldEntries = DB_Instance_Singleton.getInstance.CustomField.Where(x => x.InstanceID == instanceId); 

現在我想找出從CustomFieldData_Person屬於與實例id爲重點的層次結構中的所有條目。

在SQL我會寫這樣的事情:

SELECT * FROM CustomFieldData_Person WHERE CustomFieldDataID in (
    SELECT * FROM CustomFieldData WHERE CustomFieldID in (
    SELECT * FROM CustomField WHERE InstanceID = instanceId)) 

不幸的是我絕對新LINQ。 所以我的問題是,我怎麼能在LINQ中編寫這樣的嵌套查詢(根據上面的第一個代碼示例)?

在此先感謝!

+0

重複的http://計算器。 COM /問題/ 933491 9/LINQ嵌套查詢 –

回答

1

首先,如果你正確地創建ER模型,你將有大部分已經爲你設置

人都會有一個屬性是Person.CustomData邏輯這將有屬性字段和值,所以你可以只瀏覽對象結構

但是如果你沒有說,然後你可以轉換在語句包含

CustomFieldData_Person.Where(cfdp=>CustomFieldData.Where(nested query for CustomFieldData).Contains(cfdp.CustomFieldDataID) 
0

我認爲這個link可能是您的問題的一個很好的起點。反正看看Pranav的評論,它指向一個有用的問題

相關問題