我有 2 張桌子,TableA 和 TableB。TableA 通過兩個表中的欄位 ElmBId 與 TableB 建立一對多的關系。我需要從 TableA 中獲取一個元素,但基于 TableB 中的標準,所以我有這樣的東西:
var criteria = 1;
var ElementA = dbContext.TableA.FirstOrDefault(A => A.ElmBId == A.TableBCollection.FirstOrDefault(B =>B.Criteria == criteria).ElmBId);
當 TableB 具有與 A 相關的元素時,此查詢運行良好,但如果沒有,則拋出空值例外
為了解決這個問題,我不得不將查詢分成兩部分,如下所示:
var criteria = 1;
var tmpB = dbContext.TableB.FirstOrDefault(B => B.Criteria == criteria);
var ElementA = null == tmpB ? null : dbContext.TableA.FirstOrDefault(A => A.elmBId == tmpB.elmBId);
但是,我的問題是是否可以在唯一的查詢中包含上述內容?
uj5u.com熱心網友回復:
你有沒有考慮加入這些表?
var criteria = 1;
var query = (
from b in dbContext.TableB
join a in dbContext.TableA on b.elmBId equals a.elmBId
where b.Criteria == criteria
select a)
.FirstOrDefault();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/527482.html
下一篇:如何在具有分組的串列中設定屬性
