2012-01-19 18 views
1

私はMSSQLテーブルA、AB、Bを持っているとします。ここで、ABは2つの列を含む単純なManyToManyマッピングテーブルです。Bの主キーと主キーEntity FrameworkはABのクラスを生成しません。 BはAに、AはBでB.時々、ABの内容をそのままリストしたいと思う。多対多リレーションシップテーブルのコードを作成するためにEntity Frameworkを入手できますか?

AB ManyToManyテーブルのコードを生成するEFを取得する方法はありますか?

PSコード生成にRob Halletts Mocking Context Object Generatorを使用しています。これが適切かどうかはわかりません。

答えて

1

いいえ、できません。結合テーブルは、モデル内のエンティティとして決して表されません。しかし、あなたはABの内容を一覧表示することができ、その実体なしにもテーブルを結合:

var joinTableList = (from a in context.As 
        from b in a.Bs 
        select new 
        { 
         AId = a.Id, 
         BId = b.Id 
        }) 
        .ToList(); 

あなたは匿名オブジェクトの一覧を取得します。すべてのオブジェクトには、プロパティとしてAIdBIdがあります。このLINQクエリは、テーブルなしのテーブルABを介して非常に単純なSQLクエリに変換されます。

SELECT 
[Extent1].[AId] AS [AId], 
[Extent1].[BId] AS [BId] 
FROM [dbo].[ABs] AS [Extent1] 
関連する問題