2
我在LINQ to SQL中有以下查詢來從表中獲取所有不在聯接表中的記錄。爲什麼EF4中的匿名類型與LINQ to SQL不同?
// <param name="id">The ID of the Person</param>
IEnumberable<object> GetUnassignedClients(int id)
{
_db.Clients
.Select(i => new
{
Client_id = i.Id,
Person_id = id,
Cid = id + "." + i.Id // Please don't ask why I do this. I just have to do it
// ... some more fields
})
.Where(o =>
!_db.Clients_Persons
.Where(t => t.Person_id == id)
.Select(t => t.Client_id)
.Contains(o.Client_id))
.Distinct().ToList();
}
我現在已經開始遷移到EF4但匿名類型與組合ToList()
的「CID」部分(ToList()引發的例外是沒有WHERE條件的簡化測試用例)失敗,出現異常:
無法創建類型'System.Object'的常量值 。在此上下文中僅支持原始 類型(如Int32,String和 Guid)。
爲什麼這樣或我在這裏錯過了什麼?