我正在努力获得我认为简单的LINQ-to-SQL查询才能工作。我可以构造查询ok并且可以验证它生成的SQL是否正确但是在执行时获取可怕的“System.NotSupportedException:不支持具有本地集合的查询”异常。
我简化了我的查询,但简而言之,下面的查询有效:
var query = from asset in context where new[] { 1, 2, 3 }.Contains(asset.code) select asset
此查询也有效:
var query = from asset in context where new List<int>() { 1, 2, 3 }.Contains(asset.code) select asset
但是当尝试获取结果集时,下面的查询将失败:
List<int> myList = new List<int>(){1, 2, 3};
var query = from asset in context where myList.Contains(asset.code) select asset
有人解决了这类问题吗?
答案 0 :(得分:1)
答案 1 :(得分:0)
这在LINQPad中适用于我:
List<int> myList = new List<int>(){1, 2, 3}; /* Fixed your compiler error here */
var query = from asset in assets where myList.Contains(asset.code) select asset;
因此,我假设你实际上并没有为myList使用List
,而是使用通用的IEnumerable
或类似的东西?
请尝试粘贴您的“未简化”版本,因为您的简化会纠正您的错误。