我正在使用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