我有一個實體說電腦屬性Dnshostname和導航屬性TechnicalProductsHosted。計算機到TechnicalProductsHosted是多對一和一對多的關係。 TechnicalProductsHosted是odata中的TechnicalProducts。 Entity TechnicalProducts具有導航屬性ResponsibleUser,具有多對一的關係。 ResponsibleUser是odata的員工。員工擁有導航屬性管理器,具有多對一的功能。當我點擊經理時,我需要員工實體。我希望獲得經理姓名列表。我正在使用Linqpad。以下是代碼。odata中的關係遍歷關係
void Main()
{
var a = from cpuid in Computers
where cpuid.DnsHostName == "xyz"
select new {
ITManager = cpuid.TechnicalProductsHosted.Select (x => x.ResponsibleUser.Manager.Select(z => new { ITManager = z.Name })),
};
Console.WriteLine(a);
}
這是錯誤。 'LINQPad.User.Employee'不包含'Select'的定義,並且沒有找到接受'LINQPad.User.Employee'類型的第一個參數的擴展方法'Select'(可以按F4添加using指令或程序集參考)
這正是我想查詢達到的目的。你爲什麼認爲會有重複? 感謝您的幫助。 – Swapnil 2012-07-06 13:48:47
該查詢將返回具有給定名稱的計算機的記錄,但ITManagers屬性將包含每個託管產品的管理器。如果你碰巧有相同的經理監督兩種產品,你會得到兩次經理。但它可能不會發生在您的數據集。 – 2012-07-06 19:36:00