【问题标题】:Doesn't retrieve the related table data in Entity Framework Core with PostgreSQL不使用 PostgreSQL 检索 Entity Framework Core 中的相关表数据
【发布时间】:2017-03-29 12:22:55
【问题描述】:

我正在尝试使用 PostgreSQL 的 Entity Framework Core。我有两个表是一对多的关系。根据关系,Movie 有一个 Year,Year 有很多 Movies。但是一旦我检索电影,年份不包含在其中,除非检索年份,否则每部电影中的年份都是空的。但在追回岁月之后,电影变得有岁月。当我将年份检索代码行向上移动时。发生了同样的事情。除非检索电影,否则岁月没有电影。然后,检索电影后,选定的年份变成了电影。谁能知道如何解决它?这就像延迟加载。

这是我的两个实体。

public class T_MOVIE
{
    [Key]
    public long Oid { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public DateTime CreatedDate { get; set; }
    public long? YearOid { get; set; }
    [ForeignKey("YearOid")]
    public T_YEAR MOVIE_YEAR { get; set; }
}

public class T_YEAR
{
    public T_YEAR()
    {
        this.YEAR_MOVIEs = new HashSet<DataModel.T_MOVIE>();
    }
    [Key]
    public long Oid { get; set; }
    public string Name { get; set; }
    public ICollection<T_MOVIE> YEAR_MOVIEs { get; set; }
}

而在 OnModelCreating 中,

protected override void OnModelCreating(ModelBuilder builder)
{
    builder.Entity<T_MOVIE>().HasKey(m => m.Oid);
    builder.Entity<T_MOVIE>().HasOne(m => m.MOVIE_YEAR).WithMany(m => m.YEAR_MOVIEs);

    builder.Entity<T_YEAR>().HasKey(m => m.Oid);
    builder.Entity<T_YEAR>().HasMany(m => m.YEAR_MOVIEs).WithOne(m => m.MOVIE_YEAR);
}

然后,我检索数据。

var movies = _db.T_MOVIE.ToList();
var years = _db.T_YEAR.ToList();

谢谢。

【问题讨论】:

标签: postgresql entity-framework-core asp.net-core-1.0


【解决方案1】:

您必须在查询中添加“Include()”。除非这样做,否则它会返回空关系。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2017-08-01
  • 1970-01-01
  • 2021-12-03
  • 2023-04-02
  • 2019-02-23
  • 2021-06-13
  • 2020-06-16
  • 2019-06-08
相关资源
最近更新 更多