有許多地方,它展示瞭如何LEFT JOIN使用LINQ兩個表,但我無法增加更多的進入連接(我有15桌)。我以爲我有這種模式,但我得到一個錯誤。順便說一句,這是針對強類型的數據集,儘管我不懷疑這一點。雖然我其實有更多的表添加到一起,我試圖把它用更少的加入最初的工作(星號是其中的誤差存在的):LINQ到DataSet中的多臺左加入
var results =
from e in DataSetHelper.ds.Employee
join es in DataSetHelper.ds.EmployeeSkill on e.EmployeeId equals es.EmployeeId into esGroup from esItem in esGroup.DefaultIfEmpty()
join s in DataSetHelper.ds.Skill on **es.SkillId** equals s.SkillId into skillGroup from skillItem in skillGroup.DefaultIfEmpty()
join er in DataSetHelper.ds.EmployeeRole on e.EmployeeId equals er.EmployeeId into erGroup from erItem in erGroup.DefaultIfEmpty()
join r in DataSetHelper.ds.Role on **er.RoleId** equals r.RoleId into rGroup from rItem in rGroup.DefaultIfEmpty()
我得到兩個錯誤(同樣的事情,但在不同的聯接)。他們在查詢的第3和第5行。
對於es.SkillId,
誤差爲The name 'es' does not exist in the current context.
爲er.RoleId,
誤差The name 'er' does not exist in the current context.
同樣,我需要爲另外十個加入到使用這種模式,所以我希望的格局不會增加隨着我走向複雜。
你是否有集多個表。許多情況下,數據集將只有一個表。你需要加入一個表,所以請使用ds.Table [0]或ds.Table [「名稱」] – jdweng
這是一個複雜的查詢。你確定你的數據庫是正常化的嗎? –
@AnupSharma標準化正是您加入查詢的原因。這個數據庫實際上比我設計的數據庫要少得多。隨着進一步的正常化,將會有更多的連接。 – birdus