2011-08-23 2 views
5

Importer 및 State라는 테이블에 연결된 ImporterState라는 복합 테이블이 있습니다. 오류는 여기 context.Importers.Include(q => q.States)에서 발생합니다. 왜 이런 일이 일어나는 걸까요?Entity Framework 코드 첫 번째 및 잘못된 개체 이름 오류

{ "잘못된 개체 이름 'ImporterStates'."} 많은에

[Table("HeadlineWebsiteImport", Schema = "GrassrootsHoops")] 
     public class Importer 
     { 
      public int Id { get; set; } 
      public string Name { get; set; } 
      public string RssUrl { get; set; } 
      public string Type { get; set; } 
      public string Keywords { get; set; } 
      public bool Active { get; set; } 
      public DateTime DateModified { get; set; } 
      public DateTime DateCreated { get; set; } 

      public int WebsiteId { get; set; } 

      public HeadlineWebsite Website { get; set; } 

      [InverseProperty("Importers")] 
      public ICollection<State> States { get; set; } 
     } 

[Table("State", Schema = "GrassrootsHoops")] 
    public class State 
    { 
     [Key] 
     public int Id { get; set; } 
     public string Name { get; set; } 
     public string Abbr { get; set; } 

     [InverseProperty("States")] 
     public ICollection<Headline> Headlines { get; set; } 

     [InverseProperty("States")] 
     public ICollection<Importer> Importers { get; set; } 
    } 
+0

EF 어쩌면 당신의'테이블'ImporterStates' 가입 dbo' 스키마 참조 :

는 같은 것을 사용해보십시오. [이 답변] (http://stackoverflow.com/questions/6028375/entity-framework-code-first-many-to-many-setup-for-existing-tables/6028660#6028660)을 확인하십시오. – Eranga

+0

나는하고 싶습니다. 그 방법 대신 모든 속성. 하지만 네, 내 조인 테이블을 사용하여 뭔가를하고 있지만 내 코드에서 어디에서나 참조하지는 않습니다. –

+0

속성 기반 구성은 매우 제한적입니다. – Eranga

답변

8

많은 는 속성을 사용 할 수 없습니다.

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

     modelBuilder.Entity<Importer>() 
      .HasMany(i => i.States) 
      .WithMany(s => s.Importers) 
      .Map(m => 
       { 
        m.MapLeftKey("ImporterId"); 
        m.MapRightKey("StateId"); 
        m.ToTable("ImporterState"); 
       }); 
    } 
+0

그것은 나를 위해 매우 유용합니다. 고맙습니다. – algreat

+0

EF6가 상속받은 코드베이스에서 다 대다 관계를 자동 처리하기 때문에 완벽 했어. 그래서 언젠가는 강렬 해져서 존재하지 않는 테이블에 대해 불평하기 시작했습니다. 테이블을 자세히 살펴보면 테이블 이름은 앞뒤로 그리고 앞에서 뒤로 향하는 것과 같이 테이블 이름이 틀립니다. 이 문제는 위의 대답과 같이 관계를 명시 적으로 지정하는 것이 었습니다. – IbrarMumtaz

관련 문제