[英]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.