EF7 Not Mapping Objects

时间:2015-09-02 03:59:08

标签: c# entity-framework asp.net-core entity-framework-core

我构建了一组通过EF7映射到现有数据库的简单模型。

这是两个模型的一个例子:

public class Person
{
  public int Id { get; set; }
  public string Name { get; set; }
  public virtual ICollection<Book> Books { get; set; }
}

public class Book
{
  public int Id { get; set; }
  public string Title { get; set; }
  public int PersonId { get; set; }
  public virtual Person Person { get; set; }
}

但是,当我尝试从数据库中检索模型时(例如获取特定的书籍),所有数据都会正确返回,除了&#34; Person&#34;仍然无效,无论如何,我似乎无法获得这些数据。我检查了数据库,两个表之间存在外键关系。

我正在使用此方法来检索我的对象。

public async Task<T> FindAsync<T>(Expression<Func<T, bool>> match)
            where T : class
        {
            return await context.Set<T>().SingleOrDefaultAsync(match);
        }

有趣的是,当我创建一个迁移并使用它来创建我自己的测试数据库(使用LocalDB)时,一切看起来都很好,我觉得很奇怪。

有没有人知道为什么我的对象没有填充?

1 个答案:

答案 0 :(得分:0)

这应该有效:

return await context.Books.Include(b => b.Person).SingleOrDefaultAsync(match); // book.Person will be loaded

更新:

  

预先加载是查询一种类型实体的过程   还会将相关实体作为查询的一部分加载。渴望加载   通过使用Include方法实现。 more info