型号:
public partial class Film
{
public int FilmID { get; set; }
public virtual ICollection<Genre> Genres { get; set; }
}
public class Genre
{
public int GenreID { get; set; }
public virtual ICollection<Film> Films { get; set; }
}
使用OnModelCreating的EF6
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Film>()
.HasMany(e => e.Genres)
.WithMany(e => e.Films)
.Map(m => m.ToTable("Genre_Film").MapLeftKey("Films_IdFilm").MapRightKey("Genres_IdGenre"));
}
我用SQLite。我如何使用EF7来做同样的事情呢?
发布于 2015-12-15 15:05:36
EF7的文档说明了如何实现这个目标:http://docs.efproject.net/en/latest/modeling/relationships.html#many-to-many
modelBuilder.Entity<PostTag>() .HasOne(pt => pt.Post) .WithMany(p => p.PostTags) .HasForeignKey(pt => pt.PostId);
modelBuilder.Entity<PostTag>()
.HasOne(pt => pt.Tag)
.WithMany(t => t.PostTags)
.HasForeignKey(pt => pt.TagId);
public class PostTag
{
public int PostId { get; set; }
public Post Post { get; set; }
public int TagId { get; set; }
public Tag Tag { get; set; }
}
发布于 2015-02-07 16:32:16
映射API将在EF 7中改变。有人建议增加一个直观的一到多API。对许多人来说,这里有一个简短的词:
我们期望多到多的API非常类似于一对多和一对一的API。
但是它还没有在当前的源代码中实现。在为测试创建的上下文中,它说:
// TODO: Many-to-many
//modelBuilder.Entity<TSupplier>().ForeignKeys(fk => fk.ForeignKey<TProduct>(e => e.SupplierId));
这是我所能找到的全部。
我当然希望EF7在这方面将向后兼容。
https://stackoverflow.com/questions/28382959
复制相似问题