2017-11-15 9 views
0

EF 코드를 처음 사용합니다. 6.2 Dev Express XAF를 사용합니다. DevExpress.Persistent.BaseImpl.EF에서 Event 클래스는 Resource 클래스와 다 대다 관계를 가지고 있습니다.EF 다 대다 관계에서 결합 자 테이블의 이름을 어떻게 지정합니까?

나는 다음 목공 테이블 ResourceEvents 그러나 어떻게 든 내 목공 테이블이 EventResources로 이름이 변경되었다 일부 마이그레이션

호출되는 코드 첫 번째로 데브 익스프레스 마법사를 사용하여 새 프로젝트를 만들 경우.

어떻게 다시 설정해야합니까? 나는이 마이그레이션이

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

원인 만들됩니다

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

DBContext에 다음과 같은 추가 시도 트릭은 코드를 마이 그 레이션에 추가하여 테이블의 이름을 바꿉니다.

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

유창한 API를 사용하면 EF가 테이블 이름을 알아야하는 것처럼 보입니다.