2011-08-23 20 views
5

İthalatçı ve Durum adlı bir tabloya bağlanan, ImportterState adlı bir bileşik tablom var. Hata burada context.Importers.Include(q => q.States) olur. Bu neden oluyor?Varlık Çerçeve Kodu İlk ve Geçersiz Nesne Adı Hatası

{ "Geçersiz nesne adı 'ImporterStates'."} Birçok

[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 belki 'tablo' ImporterStates' katılmak dbo' şemaya atıfta:

gibi bir şey kullanmayı deneyin. [Bu yanıtı kontrol edin] (http://stackoverflow.com/questions/6028375/entity-framework-code-first-many-to-many-setup-for-existing-tables/6028660#6028660) – Eranga

+0

Yapmak İstiyorum Bu yöntem yerine tüm özellikler. Ancak evet, birleştirme masamla bir şeyler yapıyor, ancak kodumda herhangi bir yere başvurmuyorum. –

+0

öznitelikli yapılandırma çok sınırlıdır – Eranga

cevap

8

birçok sadece özelliklerini kullanarak mümkün değildir.

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

Benim için çok yararlı. Teşekkür ederim. – algreat

+0

Mükemmel, EF6 otomatik işleme çünkü bir kod bazında Benim için birçok ilişki Benim için devraldığı için buraya indi. Yani bir gün patladı ve var olmayan bir masadan şikayet etmeye başladı. Tabloya yakından baktığımızda, masa adına yanlış bir şekilde geri döndüğü gibi, ön ve arkadaki gibi bir şeylere geri dönüyor. Düzeltme, yukarıda yanıtlanan ilişkiyi açıkça belirtmek idi. – IbrarMumtaz

İlgili konular