2012-03-21 6 views
0

私はモデルを流暢なAPIでスキーマ生成のためにマッピングしています。興味の対象ポイントなぜHasMany()。WithMany()が間違った(?)スキーマを生成する

public class RoleMapping : EntityTypeConfiguration<Role> 
{ 
    public RoleMapping() 
    { 
     // ... 
     this.HasMany(r => r.Permissions).WithMany(); 
    } 
} 

私はロールテーブル、Perimssionsテーブルと中間テーブルを期待します。私はロールナビゲーションプロパティを追加しない限り、しかし、私は唯一の2つのテーブルを取得していますPermissionクラスが生成された操作を行います。

CREATE TABLE [Roles](
[Id] [int] IDENTITY(1,1) NOT NULL, 
[Name] [nvarchar](max) NULL) 
GO 

CREATE TABLE [Permissions](
[Id] [int] IDENTITY(1,1) NOT NULL, 
[Role_Id] [int] NULL) 
GO 

ALTER TABLE [dbo].[Permissions] WITH CHECK 
ADD CONSTRAINT [Role_Permissions] FOREIGN KEY([Role_Id]) 
REFERENCES [dbo].[Roles] ([Id]) 
GO 

ALTER TABLE [dbo].[Permissions] CHECK CONSTRAINT [Role_Permissions] 
GO 

は、なぜそれがそのように動作しますか?

+0

はこれで間違っている、それは第三のテーブルが欠落している私 –

+0

に正しく見えます。結局のところ、これは数多くあります。私は他の場所で間違いを犯したようですが。私の次のコメントを見てください。 –

答えて

0

ああ、私の間違いです。

すると、私はビルダーをモデル化するために、マッピングを追加欠けていた何を:あなたはどう思いますか

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    base.OnModelCreating(modelBuilder); 

    modelBuilder.Configurations.Add(new RoleMapping()); 
    modelBuilder.Configurations.Add(new PermissionMapping()); 

    // other mapping configurations 
} 
関連する問題