首次在ef6中运行问题

时间:2015-02-10 08:30:19

标签: c# entity-framework entity-framework-6

我有一个包含45个实体的应用程序。其中一个人有递归关系。

这是我的dbContext类:

public class Context: DbContext
{
    public Context()
    {
        Configuration.LazyLoadingEnabled = false;
        Configuration.ProxyCreationEnabled = false;
        base.Configuration.ValidateOnSaveEnabled = false;
    }
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Level>().HasMany(l => l.Children).WithOptional(l => l.Parent).HasForeignKey(l => l.ParentId);
        Database.SetInitializer<Context>(null);
        modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
    }
}

这是我的Level类,它具有递归关系:

public class Level
{
    public int LevelId { get; set; }
    public string Name { get; set; }
    public int? ParentId { get; set; }
    public Level Parent { get; set; }
    public List<Level> Children { get; set; }
}

但我有一个很大的问题,我第一次跑步需要很长时间。在localhost中需要10秒钟,在服务器中需要20到30秒才能响应。

问题是什么?

1 个答案:

答案 0 :(得分:0)

我认为你有一个构建初始化上下文视图的问题。

尝试阅读http://www.fusonic.net/en/blog/2014/07/09/three-steps-for-fast-entityframework-6.1-first-query-performance/,了解如何通过预先生成视图来改善首次启动。