我正在嘗試使用PostgreSQL的實體框架核心。我有兩個表是一對多的關係。根據這種關係,電影有一年和一年有很多電影。但一旦我檢索電影,年份不包含在內,每部電影中的年份爲空,除非檢索年份。但經過這些年,電影成爲有多年。當我將年份檢索代碼行改爲up時。發生的情況也是如此。這些年來沒有電影,除非檢索電影。然後,在檢索電影之後,選定的年份變成有電影。任何人都可以知道如何解決它?這就像懶加載。不使用PostgreSQL檢索實體框架核心中的相關表數據
這是我的兩個實體。
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();
謝謝。
[EF核心返回空關係直到直接訪問]的可能重複(http://stackoverflow.com/questions/42327515/ef-core-returns-null-relations-untill-direct-access) –
謝謝。我知道你從我給你的鏈接加載了Eager。 – Neo