0
好吧,這件事情只是困惑我。 我有一個表,說用戶,列UserID,名稱等有一個對象映射到它使用CTP5。所以現在我想測試它,並執行以下操作:EF4拋出NotSupported異常時,它(IMHO)不應該
List<User> users = new List();
// Some init code here, making say 3 users.
using (UsersDbContext)
{
// insert users
}
到目前爲止好,工作正常。 現在我想查看記錄是否匹配,所以我使用以下代碼選擇用戶。
using (UsersDbContext dbc = UsersDbContext.GetDbContext())
{
List<Users> usersRead = dbc.Users.Where(x => x.ID >= users[0].ID && x.ID <= users[users.Count - 1].ID).ToList();
}
這將引發和異常:
System.NotSupportedException:LINQ到 實體無法識別方法 '用戶get_Item(的Int32)' 方法,和 這種方法不能被翻譯成 商店表達。
EF有困難,看到我只是要求在用戶[0] .ID中返回一個int。
如果我用直接int替換對用戶[0] .ID的調用 - 工作正常。
我得到它想要做的,但我認爲應該很容易檢查方法是屬於.NET還是Sql Server?
是的,這就是我最後做的。所以這是一種bug特性,我猜... – Evgeni 2011-03-06 15:38:17