Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 多对多关系_Asp.net_Entity Framework_Breeze - Fatal编程技术网

Asp.net 多对多关系

Asp.net 多对多关系,asp.net,entity-framework,breeze,Asp.net,Entity Framework,Breeze,我的实体是“书籍”和“类别”。每本书可以有多个类别,每个类别可以与多本书相关 为了实现这一点,我制作了如下模型: public class Book { [Key] [DataMember] public Guid BookId { get; set; } public virtual ICollection<Category> Categories { get; set; } } public class Category {

我的实体是“书籍”和“类别”。每本书可以有多个类别,每个类别可以与多本书相关

为了实现这一点,我制作了如下模型:

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; }
}
// 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
公共课堂教材
{
[关键]
[数据成员]
公共Guid BookId{get;set;}
公共虚拟ICollection类别{get;set;}
}
公共类类别
{
[关键]
[数据成员]
公共Guid类别ID{get;set;}
}
我的DbContext如下所示:

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; }
}
// 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
//一些代码
公共数据库集书籍{get;set;}
公共数据库集类别{get;set;}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
modelBuilder.Entity()
.HasMany(c=>c.Categories)
.有很多
.Map(x=>
{
x、 MapLeftKey(“BookId”);
x、 MapRightKey(“类别ID”);
x、 ToTable(“图书分类映射”);
});
}
//一些代码
在客户端,图书实体不包含任何
类别

我想知道我的模型是否正确

已经创建了表
BookCategoryMapping
,但似乎无法使用breeze将数据填充到表中

如何使用breeze创建图书实体并将类别推送到其中


谢谢。

在服务器端,EF可以通过直接向BookCategoryMapping表中添加一行,在
Book
Category
之间创建关系。客户机上的微风无法做到这一点。它只能通过创建
BookCategoryMapping
实体来创建关系,然后在调用
saveChanges()
时将该实体发送到服务器

您需要将
BookCategoryMapping
建模为一个实体