2016-03-04 23 views
0

我使用LINQLINQ的背景下行爲

var remove = WE.Item.Where(key => !response.Any(p2 => p2.ItemID == key.ItemID)).ToList(); 

和occure錯誤。這是因爲我使用ToList()?如何解決它?

其他信息:無法創建類型爲 'IBD.Models.Stool'的常量值。在此上下文中僅支持基本類型或枚舉類型 。

+4

請提供有關您正在使用的基礎LINQ提供更多的細節。 EF(如果是這樣的版本)? Linq到SQL(如果是這樣的版本)?別的東西(如果是這樣的話)?問題中顯示的變量的示例值?這不是因爲你使用了'ToList()'。如果你已經使用了ToList()和內存中的對象集合,那麼你就不會遇到這樣的問題。這是因爲您使用的底層LINQ提供程序無法分析/支持您在Where子句中提供的表達式。所以請理解,LINQ是一種針對特定提供者的查詢語言。 –

回答

1

看起來你需要拉IDS出response第一,所以你可以通過列表到你的LINQ提供

var ids = response.Select(p => p.ItemID).ToList(); 
var remove = WE.Item.Where(key => !ids.Contains(key.ItemID)).ToList();