我有N×N的表,試想:LINQ到實體包括+凡採用方法
用戶(ID,...)< - UserAddresses(ID,用戶id,addressId,啓用,...) - >地址(ID ,...)
UserAddresses包含用戶和地址的FK。 據我所知,實體框架用戶創建的實體包含一個到UserAddresses的集合。該地址包含UserAddresses的集合,並且特定的UserAddress包含一個到用戶和一個地址的回車。
現在我想通過linq進行下一個查詢。 對於特定的用戶標識,只獲取啓用標誌設置爲true的userAddresses。 對於特定的用戶標識,userAddresses可以包含多個條目,但只有一個爲此特定用戶設置。
我能做的查詢是:
context.User.Include(x => x.UserAddresses)
.Include(x => x.UserAddresses.Select(y => y.Address))
.Single(x => x.id == USER_ID)
但我真正想要的是不加載所有UserAddresses爲該用戶設置好的爲TRUE ......只有一個包含啓用!
有人可以幫我做這個查詢嗎?
你使用了什麼樣的'Include'?據我所知'System.Data.Objects.ObjectQuery'的Include方法只接收1個字符串參數? –
@KingKing我已經完成了一個擴展方法,將lambda表達式格式化爲字符串,並將其傳遞給「native」ObjectQuery包含方法。 – anotherNeo
如果是這樣,你的問題的答案是'不可能','包括'不是如此強大,你不能在包含之前執行任何'過濾器'。 –