3
エンティティクラスが内部クラスである場合、エンティティフレームワークをLazyローディングコレクションに強制することは可能ですか?すべてのコードは、まずコードで書かれ、流暢なAPIです。私はこのような状況があります:エンティティが内部の場合、遅延ロードは機能しません。
internal class Order
{
public int Id { get; set; }
public ICollection<Operation> Operations { get; set; }
}
internal class Operation
{
public int Id { get; set; }
public int OrderId { get; set; }
public Order Order { get; set; }
}
internal MyContext : DbContext
{
internal DbSet<Order> Orders { get; set; }
internal DbSet<Operation> Operations { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Operation>().HasRequired(x => x.Order)
.WithMany(x => x.Operations)
.HasForeignKey(x=>x.OrderId);
}
}
そして、なぜエンティティフレームワークがOperations Collectionを遅延ロードしないのか分かりません。私は文脈の中で真のローディングを持っています。これを管理することは可能ですか?
これはそれですか?この話題にはどのような話題がありますか?私はEFチームがこれを正しく行う理由を理解していません。 – CrazyBaran
カスタムアセンブリでエンティティモデルを定義しているので、EFはリフレクションを使用してモデルクラスを取得し、レイジーローディングを有効にするプロキシクラスを作成します(エンティティから継承するクラスのラッパーのようなものです)。それは 'public'である必要があります – octavioccl
おそらく私はInternalVisibleTo EntityFrameworkを与える必要がありますか? – CrazyBaran