2011-08-23 39 views
5

我有一個名爲ImporterState的組合表,它綁定到一個名爲Importer和State的表。錯誤發生在這裏context.Importers.Include(q => q.States)。這是爲什麼發生?實體框架代碼第一個和無效的對象名稱錯誤

{ 「無效的對象名稱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

相關問題