EF 4.1 RC EF CF中的多对多关系

5 mapping many-to-many entity-framework fluent-interface entity-framework-4.1

我有两个具有多对多关系的实体,如下所示:

class author
{
  public int AuthorID{get;set;}
  public string Name{get;set;}
  public virtual ICollection<book> books{get;set;}
}
class book
{
  public int BookID{get;set;}
  public string Name{get;set;}
 public virtual ICollection<author> authors{get;set;}

}
Run Code Online (Sandbox Code Playgroud)

我有一个名为Bookauthor的中间表,定义如下:

  BookAuthor: int
  int AuthorID
  int BookID
Run Code Online (Sandbox Code Playgroud)

如何使用FluentAPI进行映射

谢谢!!

Lad*_*nka 8

这对EDMX来说是个问题,但是使用EF 4.1流畅的API 你可以映射它:

modelBuilder.Entity<book>()
            .HasMany(b => b.authors)
            .WithMany(a => a.books)
            .Map(m => m.MapLeftKey("BookID")
                   .MapRightKey("AuthorID")
                   .ToTable("BookAuthor"));
Run Code Online (Sandbox Code Playgroud)

如你所见,我没有映射BookAuthor列.该列未知EF,必须自动递增.

这显然无法使用Code-first方法,但前提是您对现有数据库使用Fluent API.