我有一个包含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秒才能响应。
问题是什么?
答案 0 :(得分:0)
我认为你有一个构建初始化上下文视图的问题。
尝试阅读http://www.fusonic.net/en/blog/2014/07/09/three-steps-for-fast-entityframework-6.1-first-query-performance/,了解如何通过预先生成视图来改善首次启动。