2015-08-15 72 views
3

假設A作爲具有屬性ID(int)和狀態(布爾) 和B作爲對象模型還具有ID(int)的對象模型和狀態(布爾)在C#實體 - 框架對象模型的篩選數據

我想從A的數據過濾它的屬性。如果SQL查詢像 "select * from A where A.Status=True and A.ID in (Select ID from B Where B.Status=True), 我現在不如何使VAR C =該查詢..

var c = A.Where(a=>a.Status==True && a.ID .....)我不知道如何申請「in」這裏

我真的新的使用C#實體框架。

+0

如果你正確地設計數據庫,表A和B應該有一個關係,然後導入到你的模型之後,應該有一些導航屬性指向B,那麼你可以輕鬆訪問和檢查e狀態。這完全取決於您的數據庫設計。 – Hopeless

+0

@Hopeless,謝謝,對於數據庫和所有不是由我創建的模型感到抱歉,它來自服務器工作使用TFS進行練習。我只是可以在代碼隱藏c#中進行命令行。現在,情景如何與我上面寫的一樣。假設這兩者之間沒有關係 – Ana

+0

如果沒有關係,我認爲您應該將查詢轉換爲本地IEnumerable(使用ToList()或其他),那麼您可以自由地執行各種LINQ。 – Hopeless

回答

2

如果A和B具有一定的關係,由名爲AB導航屬性來表示,那麼查詢可以簡單這樣的:

var c = A.Where(a=>a.Status && a.AB.Status); 

如果他們沒有任何關係,那麼你也可以直接查詢這樣的(雖然性能不會像上面一樣好):

var c = A.Where(a=>a.Status && B.Where(b=>b.Status).Any(b=>b.ID == a.ID))