我的实体是'书籍'& “类别”。每本书可以有多个类别,每个类别可以与几本书相关。
为了实现这一点,我制作了这样的模型:
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
,但似乎我无法使用breeze填充数据。
我如何使用breeze创建一个图书实体并将类别推入其中?
感谢。
答案 0 :(得分:1)
在服务器端,EF可以通过直接向BookCategoryMapping表添加行来在Book
和Category
之间创建关系。客户端上的微风无法做到这一点。它只能通过创建BookCategoryMapping
实体来创建关系,然后在您致电saveChanges()
时将其发送到服务器。
您需要将BookCategoryMapping
建模为实体。