我有一个包含 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; }
}
但我有一个大问题,我第一次运行需要很长时间。在本地主机中需要 10 秒,在服务器中需要 20 到 30 秒才能响应。
有什么问题吗?
最佳答案
我认为您在为上下文的初始化构建 View 时遇到了问题。
尝试阅读 http://www.fusonic.net/en/blog/2014/07/09/three-steps-for-fast-entityframework-6.1-first-query-performance/了解如何改进首次启动,例如通过预生成 View 。
关于c# - ef6 中的第一次运行问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28427141/