无法禁用LazyLoading

时间:2019-02-18 11:40:18

标签: c# entity-framework lazy-loading

我尝试禁用LazyLoading,但是它不起作用。有人知道我在做什么错吗?我还将“虚拟”属性定义为非虚拟属性。 我在这里遵循了本教程:http://www.entityframeworktutorial.net/lazyloading-in-entity-framework.aspx

 public partial class DataContext : DbContext
{
    public DataContext()
        : base("name=DataContext1")
    {
        this.Configuration.LazyLoadingEnabled = false;
    }

    public virtual DbSet<Category> Categories { get; set; }
    public virtual DbSet<Payment> Payments { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Category>()
            .HasMany(e => e.Payments)
            .WithRequired(e => e.Category)
            .WillCascadeOnDelete(false);
    }
}

无论是否带有“虚拟”关键字,我都会遇到相同的错误(“类别”每次都是NULL):

enter image description here

1 个答案:

答案 0 :(得分:0)

要关闭特定属性的延迟加载,请不要将其设置为虚拟,并且要关闭上下文中所有实体的延迟加载,只需将其配置属性设置为false。

考虑到这一点,看来您的代码已经关闭了上下文所有实体的延迟加载。