LINQを使用して2つのテーブルをLEFT結合する方法が示されている場所はたくさんありますが、結合を追加する際に問題があります(15個のテーブルがあります)。私はパターンがダウンしていると思ったが、私はエラーが発生している。ところで、これは厳密に型指定されたDataSetに反対していますが、私はそれが問題ではないと考えています。LINQ to 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()
私は(2つのエラーを取得しています:私は実際に参加するに追加するには多くの複数のテーブルを持っていますが、私はそれが少ない(エラーがoccuringしているところアスタリスクがある)加入すると最初に作業を取得しようとしています同じことですが、別の結合で)。それらはクエリの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.
です、私が参加し、他の10のために、このパターンを使用する必要がありますので、私はパターンが増加しない願っています私が行くほど複雑になります。
あなたは複数のテーブルを持っていますか?多くの場合、データセットにはテーブルが1つしかありません。 ds.Table [0]またはds.Table ["Name"] – jdweng
これは複雑なクエリの1つです。データベースが正規化されていますか? –
@AnupSharma正規化は、クエリに結合された理由です。このデータベースは実際に私が設計したよりも正規化されていません。さらに正規化すれば、さらに多くの結合が存在します。 – birdus