使用Entity Framework Core加載相關數據

asp.net-core-mvc c# entity-framework-core

我正在使用ASP.NET Core和Entity Framework Core創建一個新項目。 (我認為這是實體框架7?)

我認為MS已經刪除了Lazy Loading,因此我的虛擬館藏不會自動加載。所以我決定嘗試“.include”,但這種方法不見了。所以我包含了“System.Data.Entity”,現在我有.include但它仍然將集合加載為null。 entites肯定在數據庫中有相關數據。

我的守則如下:

//Property Table
public class Property
{
    public int Id { get; set; }

    public string PropertyName { get; set; }

    public string Address1 { get; set; }

    public string Address2 { get; set; }

    public string City { get; set; }

    public string Postcode { get; set; }

    public string State { get; set; }

    public string Country { get; set; }

    public string PhoneNumber { get; set; }

    public virtual ICollection<BodyCorpMember> BodyCorpMembers { get; set; }

    public bool Deleted { get; set; }
}

//Body Corp Table
public class BodyCorpMember
{
    public int Id { get; set; }

    public string FirstName { get; set; }

    public string LastName { get; set; }

    public string Email { get; set; }

    public bool IsSecretary { get; set; }

    public int Property_Id { get; set; }

    [ForeignKey("Property_Id")]
    public virtual Property Property { get; set; }
}

這是我在OnModelCreating中嘗試的一些事情沒有成功//builder.Entity()// .HasOne(a => a.Property)// .WithMany(a => a.BodyCorpMembers)// .HasForeignKey(“ PROPERTY_ID“);

    //builder.Entity<Property>()
    //    .HasMany(a => a.BodyCorpMembers)
    //    .WithOne(a => a.Property);



    //Here is my main problem, Ive tried multiple options for ".include"   but it always returns null for BodyCorpMembers
          property = _dbContext.Properties.Include(a=>a.BodyCorpMembers).Where(a=>a.Id ==id).FirstOrDefault();

還應該注意到我使用內置的IdentityDbContext作為我的Db Context。即:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>

熱門答案

我沒弄清楚它為什麼不起作用,但我剛剛將EF Core升級到1.1並使用了顯式加載。

即:

property = _dbContext.Properties.Single(a=>a.Id == id);
_dbContext.Entry(property).Collection(a => a.BodyCorpMembers).Load();

這很好用。

我希望MS帶回Lazy加載。

更新後更新到Entity框架核心1.1 .include也開始工作了。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因