我正在使用EF。这是我的LINQ查询LINQ to EF有什么问题?
public List<Tuple<int, string>> GetList()
{
return (from c in DALContext.MST
select new Tuple<int, string>(c.CD, c.NAME)).ToList();
}
当我打电话的GetList()抛出异常:只有无参构造函数和初始化在LINQ支持到实体
相反,当我重写此查询:
List<Tuple<int, string>> lst = new List<Tuple<int, string>>();
var query= (from c in DALContext.MST
select new{c.CD, c.NAME});
foreach (var item in query)
{
lst.Add(new Tuple<int,string>(item.CD,item.NAME));
}
return lst;
它只是正常工作。我的第一个查询有什么问题?
“AsEnumerable()”与使用“ToList()”还是“ToArray()”有什么不同? – Despertar 2012-12-16 01:35:16
@Despertar - ToList()和ToArray()必须遍历查询结果以构建列表或数组。在上面的例子中,如果用'ToList()'替换'AsEnumerable()',那么你会遍历结果两次。使用'AsEnumerable()'你只需循环一次,因为'AsEnumerable()'不会消耗序列。 – 2012-12-16 19:27:11