3
我與SMO的工作,我有這行代碼:如何使用方法語法重寫此行?
var results = (from User user in database.Users
where user.LoginType == LoginType.WindowsUser
select new { user.Name, user.Login }).ToList();
但不管是什麼原因,我不能寫這樣的查詢:
var results = database.Users
.Where(user => user.LoginType == LoginType.WindowsUser)
.Select(user => new { Name = user.Name, Login = user.Login })
.ToList();
我得到的錯誤是'UserCollection' does not contain a definition for 'Where' and no extension method 'Where' accepting a first argument of type 'UserCollection' could be found (are you missing a using directive or an assembly reference?)
但據我所知,這兩個陳述是相同的。
爲什麼會發生這種情況?
你有'使用System.Linq的:
您可以通過留下的範圍變量隱式類型挑起與查詢表達式同樣的錯誤? 「Where」和「Select」是擴展方法。 –
@BrianRogers:這仍然會失敗,查詢表達式也是如此 - 編寫查詢表達式不會隱式地導入任何名稱空間。 –
是的。它不會讓我使用查詢語法,否則。我得到錯誤'無法找到源類型'UserCollection'的查詢模式的實現。 'Cast'未找到。您是否缺少對'System.Core.dll'的引用或'System.Linq'的使用指令?' – Jake