는 샘플 스키마 인 "=" ""일대 다 "관계를 나타낸다 :
계약 => ContractCustomers을
계약 => ContractDiscounts
고객 => ContractCustomers
DiscountType => ContractDiscounts
나는 하나의 서버 호출을 사용하여 관련된 모든 세부 사항과 함께 계약 오브젝트를 검색하려고한다.관련된 모든 정보와 함께 LINQ 개체를 검색하는 방법은 무엇입니까?
using (Data.ABWXDataContext db = new Data.ABWXDataContext())
{
DataLoadOptions options = new DataLoadOptions();
options.LoadWith<Data.Contract>(c => c.ContractCustomers);
options.LoadWith<Data.Contract>(c => c.ContractDiscounts);
options.LoadWith<Data.ContractDiscount>(c => c.DiscountType);
options.LoadWith<Data.ContractCustomer>(c => c.Customers);
db.LoadOptions = options;
var Contract = from con in db.Contracts
where con.ContractId == contractId
select con;
return Contract.ToList();
}
}
위의 코드는 ContractDiscounts 및 ContractCustomers 테이블을 포함하도록 잘 작동 :
지금까지 내가 LoadWith을 사용했다. 그러나 그것은 (할인 유형, 고객)에 대한 액세스를 제공하지 않습니다. 나는 그들이 계약의 자녀가 아니라는 것을 알고 있습니다. 어떻게 그 계약 대상과 동행 할 수 있습니까?
간단한 일반적인 작업 인 경우 사과드립니다.
= db.Contracts .Where (c => c.ContractId == contractId;'메소드가'IQueryable'를 리턴하도록 내버려 두지 만 문제가 해결되지 않을 것이라고 생각합니다.) 클래스에 대한 메타 데이터 정의를 게시 할 수 있습니까? – ChrisF
알아요, 당신이 많이 도움이 안되지만 좀 더 복잡한 쿼리에 관해서는 조금 잃어 버렸지 만'JOIN'을 사용하면 효과가있는 것처럼 보입니다. 구문에 대해서는 잘 모르겠지만 JOIN을 포함 시키려고 시도 했습니까? 검색어? – Leron
http://msdn.microsoft.com/en-us/library/bb5 34268 (v = vs.110) .aspx # remarks 토글은 할 수없는 것처럼 보입니다. 그러나 Entity Framework에서 가능합니다. 능동적 인 개발이 이루어 졌다면 대신이를 사용하는 것을 고려하십시오. – Aron