在EF7中加载参考

彼得·艾伯特

我有两个课程-作者和博客文章:

public class Author
{
    public Author()
    {
        Blogposts = new HashSet<Blogpost>();
    }

    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Blogpost> Blogposts { get; set; }
}

public class Blogpost
{
    public Blogpost()
    {
    }

    // Properties
    public int Id { get; set; }
    public string Text { get; set; }

    public int AuthorId { get; set; }

    public Author Author { get; set; }
}

使用EF7(beta4),我通过以下方式进行连接:

public partial class MyDbContext : DbContext
{
    public virtual DbSet<Author> Author { get; set; }
    public virtual DbSet<Blogpost> Blogpost { get; set; }
    protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Author>(entity =>
            {
                entity.Property(e => e.Id)
                    .ForSqlServer().UseIdentity();
            });

            modelBuilder.Entity<Blogpost>(entity =>
            {
                entity.Property(e => e.Id)
                    .ForSqlServer().UseIdentity();
            });

            modelBuilder.Entity<Blogpost>(entity =>
            {
                entity.Reference<Author>(d => d.Author).InverseCollection(p => p.Blogposts).ForeignKey(d => d.AuthorId);
            });
    }
}

访问博客文章时,Db.Blogpost.First(x => x.Id == id)我会检索Blogpost对象-但是,该.Author属性为null。另外,检索任何Author对象时,其.Blogposts集合为空。

我了解EF7尚未实现预先加载或延迟加载。但是我该如何检索/分配通过外键引用的任何对象?

natemcmaster

EF 7实施了预先加载。

使用.include

var post = context.Blogpost.First(); // post.Author will be null

var post = context.Blogpost.Include(b => b.Author).First(); // post.Author will be loaded

有关使用集合的更多信息,请参见以下问题的答案:如何使用集合

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

EF7加载列表中实体的子级

来自分类Dev

ChangeTracker.Entries()CurrentValue等于EF7中的OriginalValue

来自分类Dev

这些模型可以在EF7中表示吗?

来自分类Dev

如何修复EF7中的此错误?

来自分类Dev

多对多EF7

来自分类Dev

EF7一对多映射

来自分类Dev

EF7 DBContext的配置错误?

来自分类Dev

使用EF7的存储库模式

来自分类Dev

EF7不保存对象图

来自分类Dev

EF7一对多映射

来自分类Dev

EF7错误插入默认日期

来自分类Dev

通用应用程序中具有EF7的数据库优先

来自分类Dev

在EF7中添加相同类型的多个导航属性

来自分类Dev

尝试在EF7和ASP.NET5中使用DbSet <TEntity> .Where()

来自分类Dev

在MVC6和EF7的BaseController中初始化DbContext吗?

来自分类Dev

如何在EF7(Core)中为同一表创建多个关系?

来自分类Dev

等效于Entity Framework Core 1(EF7)中的.HasOptional

来自分类Dev

在新配置下在EF7中切换ProxyCreation

来自分类Dev

EF7命令在VS2015 CTP 6中不起作用

来自分类Dev

是否可以在EF7中使用流畅的API添加CHECK约束?

来自分类Dev

代替EF7中的DbSet Create()方法使用什么,建议仅使用新的T()

来自分类Dev

在EF7中为谓词使用参数时,为什么不能使用ToListAsync()?

来自分类Dev

如何在运行时在EF7 Core中更改连接字符串?

来自分类Dev

与EF7(Core)中的同一张表的多个关系

来自分类Dev

在EF7中将参数用作谓词时,为什么不能使用ToListAsync()?

来自分类Dev

EF7连接表中的重复条目用于多对多关系

来自分类Dev

使用EF7(EF Core)的UWP数据绑定

来自分类Dev

实体框架急于在EF4和EF6中加载差异

来自分类Dev

由于旧的程序集参考,因此无法在VS2012中加载Winforms Designer

Related 相关文章

热门标签

归档