Entity Frameworkコアでの関連データの読み込み

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

質問

私は、ASP.NET Core&Entity Framework Coreを使用して新しいプロジェクトを作成しています。 (これはエンティティフレームワーク7だと思いますか?)

MSがLazy Loadingを削除したと思うので、私の仮想コレクションは自動的に読み込まれません。だから私は ".include"を試してみることにしましたが、この方法はありませんでした。私は "System.Data.Entity"をインクルードしましたが、今は.includeを持っていますが、それでもコレクションはnullとしてロードされます。エンタテイメントは、関連するデータをデータベースに持っています。

私のコードは以下の通りです:

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

私は、私のDbコンテキストとしてIdentityDbContextを使っています。すなわち:

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が遅延ロードを返すことを願っています。

更新 Entityフレームワークコア1.1にアップデートした後.includeも動作し始めました。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ