Entity Frameworkを使用して複雑なクエリを作成し、結合でスタックしようとしています。いくつかのドキュメントを閲覧した後、正しい解決策が見つからないようですので、ここの誰かが助けてくれるかもしれません。
家族に複数の家族がいるデータ構造があり、各家族は(異なる登録日に)収入テーブルに複数のエントリを持つことができ、健康状態テーブルに複数のエントリを持つことができます。
私が取得したいのは、次のクエリの結果です
select [some stuff] from FamilyMember fm
left join FamilyMemberIncome fmi on fm.id=fmi.familymemberid
left join Education e on e.id=fmi.educationid
left join FamilyMemberHealthCondition fmhc on fm.id=fmhc.familymemberid
left join HealthCondition hc on fmhc.healthconditionid=hc.id
これは明らかに、1人の家族に対して複数の結果を返しますが、それは問題ありません。私のコードの試みはこのように始まりました(しかし間違っています:「idは匿名タイプのメンバーではありません」)
Dim familyMembers As IQueryable = database.FamilyMember _
.Join( _
database.FamilyMemberIncome, _
Function(fm) fm.id, _
Function(fmi) fmi.familymemberid, _
Function(fm, fmi) New With { _
.fmEducation = fmi.Education, _
.fmIncome = fmi.averagemonthlyincome, _
.fmProfession = fmi.profession _
}
) _
.Join( _
database.FamilyMemberHealthCondition, _
Function(fm) fm.id, _
Function(fmhc) fmhc.familymemberid, _
Function(fm, fmhc) New With { _
.fmHealthCondition = fmhc.HealthCondition
}
)
誰かが私にこれを行う正しい方法を教えてもらえますか(または説明している記事を教えてもらえますか)?