首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >多到多EF7

多到多EF7
EN

Stack Overflow用户
提问于 2015-02-07 13:53:38
回答 2查看 5.4K关注 0票数 9

型号:

代码语言:javascript
代码运行次数:0
运行
复制
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

代码语言:javascript
代码运行次数:0
运行
复制
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来做同样的事情呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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);

代码语言:javascript
代码运行次数:0
运行
复制
        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; }
        }
票数 9
EN

Stack Overflow用户

发布于 2015-02-07 16:32:16

映射API将在EF 7中改变。有人建议增加一个直观的一到多API。对许多人来说,这里有一个简短的词:

我们期望多到多的API非常类似于一对多和一对一的API。

但是它还没有在当前的源代码中实现。在为测试创建的上下文中,它说:

代码语言:javascript
代码运行次数:0
运行
复制
// TODO: Many-to-many
//modelBuilder.Entity<TSupplier>().ForeignKeys(fk => fk.ForeignKey<TProduct>(e => e.SupplierId));

这是我所能找到的全部。

我当然希望EF7在这方面将向后兼容。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28382959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档