2014-02-05 25 views
0

我的實體是'書籍'&'Categories'。每本書可以有多個類別,每個類別可以與幾本書有關。BreezeJs:多對多關係

要實現這一點,我做出這樣的模式:

public class Book 
{ 
    [Key]   
    [DataMember] 
    public Guid BookId { get; set; } 

    public virtual ICollection<Category> Categories { get; set; } 
} 

public class Category 
{ 
    [Key] 
    [DataMember] 
    public Guid CategoryId { get; set; } 
} 

我是的DbContext這樣的:

// Some code 

public DbSet<Book> Books { get; set; } 
public DbSet<Category> Categories { get; set; } 

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    modelBuilder.Entity<Book>() 
     .HasMany(c => c.Categories) 
     .WithMany() 
     .Map(x => 
     { 
      x.MapLeftKey("BookId"); 
      x.MapRightKey("CategoryId"); 
      x.ToTable("BookCategoryMapping"); 
     }); 

} 

// Some code 

在客戶端,書籍犯規包含任何categories關鍵實體???

林想知道我的模型是否正確。

BookCategoryMapping已創建,但似乎我不能使用微風填充數據。

如何使用微風創建圖書實體並將類別推入其中?

謝謝。

回答

1

在服務器端,EF可以通過將一行直接添加到BookCategoryMapping表中,在BookCategory之間創建關係。客戶端的微風無法做到這一點。它只能通過創建一個BookCategoryMapping實體來創建關係,然後在您撥打saveChanges()時將其發送到服務器。

您需要將BookCategoryMapping作爲實體進行建模。