今朝は数分の余裕があったので、以下のサンプル実装を見つけてください。目的を達成するために指定したテーブルに加えて、2 つのテーブル間の関連付け (多対多) を追加する必要があります。これは結合テーブルで実行され、両方のエンティティにナビゲーション プロパティが追加されます。
以下のクエリは基本的に、テーブル 1 のエントリを選択し、Table2 ナビゲーション プロパティから関連付けられたレコードを含めることを示しています。この例では、コンテキスト内で遅延読み込みをオフにしました (これは、層を超えて、および/またはアプリケーションでシリアル化するときに問題が発生するため、ほぼ常に実行する必要があります)。
// db first
using (var db = new SO15312066Entities())
{
// iterate over table 1, with join values from 2
var query = db.Table1.Include("Table2");
foreach (var item in query)
{
Console.WriteLine("{0}:{1}", item.Id, string.Join(";", item.Table2.Select(x => x.Name).ToList()));
}
}
//output
//1:SomeText1;SomeText2
//2:SomeText3
この実装の前提は、最初に EF データベースであるということです (最初に EF で問題が発生していると述べたように)。SO15312066Entities は、クエリの ObjectContext です。
これがどれだけうまく機能するかは確認していません。実際の実装ではあなたに任せます。