我在聯繫人和列表之間的EF Code First中有多對多的關係。 ProxyCreation和LazyLoading被禁用以允許實體的序列化。實體框架多對多過濾器
我有一個查詢是爲了返回給定列表中的聯繫人。
// GET api/Contacts
[Queryable]
public IQueryable<Contact> GetContacts(int bulkListId)
{
var bulkList = db.BulkLists.Include(c => c.Contacts).Where(c => c.ID == bulkListId).SingleOrDefault();
if (bulkList == null)
throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound));
return bulkList.Contacts.AsQueryable().OrderBy(c => c.ID).Include(c => c.AddressBookType).Include(c => c.BulkLists);
}
雖然這可行,但它不能按預期工作。它導致正確的聯繫人集合在給定列表中,但這些聯繫人僅在關係的Lists屬性中填充了該列表。所以當這個序列化並返回到客戶端時,它隱藏了聯繫人所屬的其他列表。
我看不到查詢是如何以這種方式對它進行過濾以及如何將其更改爲包含完整的列表集。任何建議將非常感激。
驚人,沒想到嵌套查詢的那樣。我認爲EF查詢可能比他們實際上更脆弱。 @ - } - 花給你:P – 2012-08-14 09:32:41
謝謝 - 漂亮的表情! – 2012-08-14 09:47:35