c# - ef6 中的第一次运行问题

标签 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; }
}

但我有一个大问题,我第一次运行需要很长时间。在本地主机中需要 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/

相关文章:

c# - OData超媒体

c# - UWP C# 的 Converter 和 ConvertAll 替代方案

entity-framework - 在Linq中将func作为参数传递给实体和“内部.NET Framework数据提供程序错误1025”错误

c# - Entity Framework 中的 HttpContext 数据缓存

sql - 关于 Entity Framework 的思考

c# - 连接字符串 EF 设计器的存储位置

c# - 如何在不属于任何选项卡内容(即登录部分或注册部分)的 JQuery 选项卡上延迟加载内容

c# - C# 应用程序中 where 子句中的未知列

c# - 我想使用 Entity Framework + ASP Identity 但我不想让 EF 为我生成表

c# - 使用 Entity Framework 6 调用数据库函数