【发布时间】: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();
谢谢。
【问题讨论】:
-
谢谢。我从你给我的链接中知道了 Eager 加载。
标签: postgresql entity-framework-core asp.net-core-1.0