不使用PostgreSQL檢索Entity Framework Core中的相關表數據

asp.net-core-1.0 entity-framework-core postgresql

我正在嘗試使用PostgreSQL實現Entity Framework Core。我有兩個表是一對多的關係。根據這段關係,電影有一年和一年有很多電影。但是,一旦我檢索電影,年份不包含在其中,每部電影中的年份為空,除非檢索年份。回顧這些年後,電影變得多年。當我將檢索代碼行的年份移動到時。它發生了同樣的事情。除非取回電影,否則這些年沒有電影。然後,在檢索電影之後,選定的年份變成了電影。誰能知道如何解決它?這就像延遲加載。

這是我的兩個實體。

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();

謝謝。

一般承認的答案

您必須在查詢中添加“Include()”。除非這樣做,否則返回null關係。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow