-3

当我开始控制台程序并初始化我的 DbContext 类时,我的程序每 20 秒等待一次。

没有 dbContext 类都可以正常工作。有谁知道为什么?

这里有一些代码

public class CobraDataBaseContext : DbContext
{

    public DbSet<Material> Materials { get; set; }
    public DbSet<Site> Sites { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        // Ein Workplace hat eine Optinale Maschine ABER eine Maschine muss immer einem Workplace 
        // zugeordnet sein.
        modelBuilder.Entity<WorkPlace>().HasOptional(m => m.machine).WithRequired(wp => wp.workPlace);

        // one material has optinal specification
        modelBuilder.Entity<Material>().HasOptional(n => n.specification).WithMany();
    }
}

一个服务类

公共站点 getSite(string siteName) { var site = dbContext.Sites.FirstOrDefault(s => s.name.Equals(siteName));

        foreach (var wp in site.workPlaces)
        {
            if (wp.numberOfWorkers != null)
            {
                double count = wp.numberOfWorkers.value.Value;
            }
        }


        return dbContext.Sites.FirstOrDefault(s => s.name.Equals(siteName));
    }
4

2 回答 2

2

以下摘录解释了正在发生的事情

模型缓存

发现模型、处理数据注释和应用流畅的 API 配置需要一些成本。为了避免每次实例化派生 DbContext 时产生此成本,模型在第一次初始化期间被缓存。然后,每次在同一个 AppDomain 中构造相同的派生上下文时,都会重新使用缓存的模型。

于 2013-03-13T12:22:28.697 回答
0

这可能会帮助您:MSDN: Performance Considerations for Entity Framework 5

特别是,我发现如果您有一个大型模型,预编译视图最有帮助。

于 2013-03-13T12:22:19.367 回答