EF6阅读多对多关系

时间:2018-05-09 21:15:44

标签: c# entity-framework-6 many-to-many

关于这种情况几乎有很多问题,但我无法用这个帮助解决我的问题。我的模型看起来像这样

public class Tag
{
    public int Id { get; set; }
    public string Name { get; set; }
    public ICollection<Post> Posts { get; set; }
}
public class Post
{
    public int Id { get; set; }
    public ICollection<Tag> Tags { get; set; }
}

我在dbcontext中配置了实体,如下所示

    modelBuilder.Entity<Post>()
    .HasMany<Tag>(t => t.Tags)
    .WithMany(m => m.Posts)
    .Map(mp =>
    {
        mp.ToTable("PostToTag");
        mp.MapLeftKey("PostId");
        mp.MapRightKey("TagId");
    });

当我运行以下查询时,我可以阅读postid,甚至我可以读取相关的TagId但Tag的Name属性始终为空,它永远不会加载标签名称

    var posts = db.Posts
    .Include(t => t.Tags)
    .ToList();

我简化了代码,这两个实体在构造函数中都有HashSet,并且还尝试了延迟加载开/关但没有成功。

0 个答案:

没有答案