연락처와 목록 간의 EF 코드 첫 번째로 다 대다 관계가 있습니다. 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 –
고마워 - 멋진 이모티콘! –