我有两个具有多对多关系的实体:
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;}
}
我有一个名为Bookauthor的中间表,定义如下:
BookAuthor: int
int AuthorID
int BookID
如何使用FluentAPI进行映射
谢谢!
答案 0 :(得分: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"));
如您所见,我没有映射BookAuthor
列。该列未知EF,必须自动递增。
这显然无法使用代码优先方法,但前提是您对现有数据库使用Fluent API。
答案 1 :(得分:0)