2016-11-09 3 views
1

이 코드는 MVC에, 나는 Entity Framework Core를 사용하여, 다음과 같이하지만 ASP.net Core에 뭔가를 할 필요가있다, 또는 DataAnnotations는 (내가 ModelBuilder(Entity Framework Core)DbModelBuilder(MVC Entity Framework)에서 이미 매개 변수를 변경 한)와OnModelCreating 엔티티 프레임 워크 핵심

protected override void OnModelCreating(ModelBuilder modelBuilder) 
     { 
      modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>(); //error: Conventions is not recognized 
      base.OnModelCreating(modelBuilder); 
      modelBuilder.Entity<tbl_Line>() 
       .HasMany(d => d.tbl_Policy) 
       .WithRequired(c => c.tbl_Line) //error WithRequired not recognized 
       .HasForeignKey(c => c.int_lineID); 
     } 

내가 Entity Framework Core에서 사용하기 위해 노력하고있어 일부 오류가 있습니다 :

1 'ModelBuilder' does not contain a definition for 'Conventions' and no extension method 'Conventions' accepting a first argument of type 'ModelBuilder' could be found (are you missing a using directive or an assembly reference?)

2 'CollectionNavigationBuilder<tbl_Line, tbl_Policy>' does not contain a definition for 'WithRequired' and no extension method 'WithRequired' accepting a first argument of type 'CollectionNavigationBuilder<tbl_Line, tbl_Policy>' could be found (are you missing a using directive or an assembly reference?)

+1

좋은 출발점 - [EF Core vs. EF6.x] (https://docs.efproject.net/en/latest/efcore-vs-ef6/index.html#) –

+0

@IvanStoev 페이지를 찾을 수 없습니다. 심지어 구성을 사용하여 내 ef 핵심 컨텍스트 파일에 맵을 추가하려고합니다. 같은 파일에 매핑을 작성하는 것은 어수선 해 보입니다. AlexGh와 같은 방법으로 추가 할 필요가 있습니다. – nakulchawla09

+0

@ nakulchawla09 최근 문서는 [여기] (https://docs.microsoft.com/en-us/ef/efcore-and-ef6/)입니다. 결론적으로, EF6와 같이 EF Core와 같은 컨벤션 및/또는 구성에 대한 지원은 아직 없습니다 (AFAIK 추가 계획이 있지만 언제 알지는 못합니다). 이제는 modelBuilder가 붙어 있습니다. –

답변

0

있을 때까지 ModelBuilder.Configurations 내가 이전 확장 방법과 엔티티 프레임 워크 건설 모방에 대한 지원 : 다음

public static EntityTypeBuilder<Project> Map(this EntityTypeBuilder<Project> cfg) 
{ 
    cfg.ToTable("sql_Projects"); 

    // Primary Key 
    cfg.HasKey(p => p.Id); 

    cfg.Property(p => p.Id) 
     .IsRequired() 
     .HasColumnName("ProjectId"); 

    return cfg; 
} 

이 같은 OnModelCreating에서 호출을 ...

protected override void OnModelCreating(ModelBuilder modelBuilder) 
{ 
    modelBuilder.Entity<Project>().Map(); 
    base.OnModelCreating(modelBuilder); 
} 

수십 개의 구성을 시도하는 것보다 조금 번거 롭지만 깨끗하다고 ​​생각합니다. 메인 DbContext 내의 엔티티

+0

이 방법은 존재하지 않는 것 같습니다. –

+0

어떤 방법을 언급하고 있습니까? – Neilski