這裏是一個示例模式,其中 「=>」 代表 「一個一對多」 的關係:
合同=> ContractCustomers
合同=> ContractDiscounts
顧客=> ContractCustomers
DiscountType => ContractDiscounts
我試圖通過一次調用服務器來檢索合同對象及其所有相關詳細信息。
到目前爲止,我用LoadWith:如何檢索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表。但它不能讓我訪問(折扣類型,客戶)。我明白他們不是合同的子女,我怎樣才能陪伴他們與合同對象?
我很抱歉,如果這是一個簡單的常見任務。
我會去'VAR合同= db.Contracts .Where(c => c.ContractId == contractId;'並讓方法返回'IQueryable',但我認爲這不會解決你的問題。你能發佈你的元數據定義的類。 – ChrisF
我知道, m不是很幫你,但是當涉及到更復雜的查詢時,我也有點失落,但是似乎使用'JOIN'可能會使它工作。不確定的語法,你有沒有嘗試在你的包括'JOIN'查詢? – Leron
http://msdn.microsoft.com/en-us/library/bb5 34268(v = vs.110).aspx#remarksToggle似乎無法完成。但是,它可能與實體框架。考慮使用它,而不是,因爲它有積極的發展。 – Aron