我有一個與this one有關的問題。我不想做一個計算(聚合),但我需要從關聯中獲取顯示值。在我的C#代碼中,我可以直接引用該值,因爲外鍵約束使Linq生成了所有必要的連線。 當我將IQueryable指定爲Gridview數據源屬性並引用不是結果集中主要實體的列的內容時,出現該列不存在的錯誤。 作爲Linq的新手,我猜測賦值隱含地將IQueryable轉換爲列表,並且關聯丟失。 我的問題是,有什麼好辦法做到這一點?Linq to SQL和Gridview數據源
我假設我可以通過編寫一個並行查詢來返回一個匿名類型,該類型包含gridview所需的所有列。看起來,通過這樣做,我可以在內存中冗餘地保存已有的數據。我可以在分配數據源時即時查詢內存中的數據結構嗎?還是有更直接的解決方案?
gridview應該顯示醫生的醫療組關聯,並且關聯的名稱位於查找表中。
IQueryable<Physician> ph =
from phys in db.Physicians
//from name in phys.PhysicianNames.DefaultIfEmpty()
//from lic in phys.PhysicianLicenseNums.DefaultIfEmpty()
//from addr in phys.PhysicianAddresses.DefaultIfEmpty()
//from npi in phys.PhysicianNPIs.DefaultIfEmpty()
//from assoc in phys.PhysicianMedGroups.DefaultIfEmpty()
where phys.BQID == bqid
select phys;
alt text http://heeroz.com/phys.jpg
因此,根據丹尼斯的回答,我刪除了所有不必要的東西從我的查詢。我想我可能不會問正確的問題。
無論如何,該頁面顯示的是醫生的數據。我想在網格中顯示所有醫療組織關聯關係(並讓用戶插入,編輯和更新關聯關係)。我現在意識到我不需要明確地加入這些其他表格--Linq爲我做了。通過引用兒童關聯鏈,我可以訪問位於單獨表格中的許可證編號。 我不能在GridView,這使我回到我的問題引用醫療組名稱:
AffiliationGrid.DataSource = ph.First().PhysicianMedGroups;
這是不行的,因爲med_group_print_name不能訪問爲GridView:
A field or property with the name 'med_group_print_name' was not found on the
selected data source.
同樣,忍受着我,如果我明白我不明白Linq ......因爲我不明白。
是的,我認爲可能不需要負載。我修改了我的問題。 – cdonner 2009-05-03 23:52:53