最初にPOCOエンティティとカスタムDbContextでEFモデルを使用しています。私の問題は、設定LazyLoadingEnabled=false
が何にも影響せず、ナビゲーション プロパティがまだ読み込まれていることです。以下は私の例を簡略化したものです。
エンティティ プログラム。プログラムは他のプログラムの一部になることができます:
namespace Domain.Entities
{
using System;
using System.Collections.Generic;
public partial class Program
{
public Program()
{
this.Programs = new HashSet<Program>();
}
public int Id { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public System.DateTime StartDate { get; set; }
public System.DateTime EndDate { get; set; }
public Nullable<int> ProgramId { get; set; }
public virtual ICollection<Program> Programs { get; set; }
public virtual Program OwnerProgram { get; set; }
}
}
DbContext:
namespace Infrastructure.Model
{
public class ProgramContext : DbContext
{
public ProgramContext()
: base("name=MyContainer")
{
Configuration.LazyLoadingEnabled = false;
}
public DbSet<Program> Programs { get; set; }
}
}
これが私がそれを使用する方法です:
private ProgramContext _dbContext = new ProgramContext();
// GET api/program
public IEnumerable<Program> GetPrograms()
{
List<Program> list = _dbContext.Programs.ToList();
return list;
}
上記のサンプルでは、EF は引き続き Program クラスの Programs プロパティと OwnerProgram プロパティを読み込みます。仮想キーワードを削除して、プロキシの作成を無効にLazyLoadingEnabled=false
し、モデル自体でも確認しました。
何か不足していますか?