[英]Remove item from IQueryable from List
我的數據庫Products
和PremiumProducts
中有 2 個表用於 ASP Net 應用程序。
我用一個簡單的查詢檢索產品
IQueryable<Product> query = from p in myDataContext.Products select p;
我有一個PremiumProducts
列表(其中包含Product
的 ID)。 我試圖從上面的查詢中刪除PremiumProducts
列表中的 ID,但不確定是否有簡單的方法,或者我是否需要先將所有PremiumProducts
轉換為Product
? 我試過這個
List<PremiumProducts> premiumProducts;
query = from p in query where (premiumProducts.Contains(p.ID)) select p;
但這當然會帶來各種鑄造錯誤。
有沒有一種簡單的方法可以從上面的query
中刪除PremiumProducts
,或者我是否需要將PremiumProducts
轉換為Product
,存儲 ID,然后嘗試使用這些 ID 刪除查詢?
而不是:
query = from p in query where (premiumProducts.Contains(p.ID)) select p;
我會建議:
query = from p in query where (!premiumProducts.Select(z => z.ID).Contains(p.ID)) select p;
主要區別:
!
(因為你想排除那些在premiumProducts
)。premiumProducts.Select(z => z.ID)
來確保包含是針對ID
而不是 object (只是避免您的鑄造問題)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.