2013-01-19 119 views
0

我在ASP.NET MVC 4中使用了實體框架5,我對它很陌生。我想獲得一個實體主鍵列表。主鍵是Guid。當我寫了下面的代碼,我得到錯誤:將Lambda轉換爲Guid列表

List<Guid> list = DB.Complex.Where(d => d.IsActive == true) 
.Select(d => d.PKComplexRoomID).ToList<Guid>(); 

錯誤:

'System.Linq.IQueryable<System.Guid?>' does not contain a definition for 'ToList' and the best extension method overload 'System.Linq.Enumerable.ToList<TSource>(System.Collections.Generic.IEnumerable<TSource>)' has some invalid arguments

我用Google搜索,但沒有找到任何東西。

回答

1

看起來PKComplexRoomID爲空,因爲您的選擇結果類型爲System.Linq.IQueryable<System.Guid?>

這取決於你的情況,但假設房間ID不爲空值的活動實體,你可以試試:

List<Guid> list = DB.Complex.Where(d => d.IsActive == true && d.PKComplexRoomID.HasValue).Select(d => d.PKComplexRoomID.Value).ToList();