2017-11-15 5 views
0

私はEFコードを最初に使用しています。6.2 Dev Express XAFを使用しています。 DevExpress.Persistent.BaseImpl.EFでは、EventクラスはResourceクラスと多対多の関係を持っています。EF多対多リレーションシップで結合ツールテーブルの名前を指定する方法を教えてください。

私はその後、建具表はResourceEventsしかし何とか私の建具テーブルがEventResourcesことに改名しまったいくつかの移行で

と呼ばれるコードファーストとDevの簡易設定ウィザードを使用して新しいプロジェクトを作成する場合。

どのようにする必要がありますか? 私は、この移行を実行

public partial class ev : DbMigration 
    { 
    public override void Up() 
    { 
     DropPrimaryKey("dbo.ResourceEvents"); 
     AddPrimaryKey("dbo.ResourceEvents", new[] { "Event_ID", "Resource_Key" }); 
    } 

    public override void Down() 
    { 
     DropPrimaryKey("dbo.ResourceEvents"); 
     AddPrimaryKey("dbo.ResourceEvents", new[] { "Resource_Key", "Event_ID" }); 
    } 

}

を作成するための移行がエラーに

Cannot find the object "dbo.ResourceEvents" because it does not exist or you do not have permissions. 

答えて

0

原因となりDBContext

 modelBuilder.Entity<Event>().HasMany(x => x.Resources).WithMany(x => x.Events) 
      .Map(
       x => 
       { 
        x.MapLeftKey("Event_ID"); 
        x.MapRightKey("Resource_Key"); 
        x.ToTable("ResourceEvents"); 
       }); 

に以下を追加してみましたトリックはテーブルに名前を変更するコードを追加することでした

RenameTable(name: "dbo.EventResources", newName: "ResourceEvents"); 

流暢なAPIを持つことは、EFに表の名前を知らせる上で重要と思われます。

関連する問題