2011-08-23 29 views
5

Tôi có một bảng tổng hợp được gọi là ImporterState, được gắn với một bảng được gọi là Trình nhập và Trạng thái. Lỗi xảy ra ở đây context.Importers.Include(q => q.States). Tại sao chuyện này đang xảy ra?Mã đối tượng Mã lỗi đối tượng đầu tiên và không hợp lệ

{ "không hợp lệ tên đối tượng '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 có lẽ ám chỉ đến tham gia bảng 'ImporterStates' trong' schema dbo' của bạn. Kiểm tra [câu trả lời này] (http://stackoverflow.com/questions/6028375/entity-framework-code-first-many-to-many-setup-for-existing-tables/6028660#6028660) – Eranga

+0

Tôi muốn làm tất cả các thuộc tính thay vì phương thức đó. Nhưng có nó đang làm một cái gì đó với bàn tham gia của tôi nhưng tôi không tham chiếu nó bất cứ nơi nào trong mã của tôi. –

+0

cấu hình dựa trên thuộc tính rất hạn chế – Eranga

Trả lời

8

Nhiều đến nhiều là không thể sử dụng thuộc tính duy nhất.

hãy thử sử dụng một cái gì đó như:

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

Nó rất hữu ích cho tôi. Cảm ơn bạn. – algreat

+0

Tuyệt vời, tôi đã đến đây vì EF6 đã tự động xử lý Nhiều mối quan hệ với tôi trên cơ sở mã mà tôi đã kế thừa. Một ngày nọ, nó nổ tung và bắt đầu phàn nàn về một cái bàn không tồn tại. Nhìn kỹ vào cái bàn, nó đã có cái tên bảng tròn sai, như quay lại phía trước và phía trước để trở lại loại điều. Bản sửa lỗi là để xác định rõ ràng mối quan hệ như đã trả lời ở trên. – IbrarMumtaz

Các vấn đề liên quan