c# DbContext needs 20seconds
本文关键字:20seconds needs DbContext | 更新日期: 2023-09-27 18:03:37
当我启动may控制台程序并初始化我的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();
}
}
服务类
public Site getSite(字符串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));
}
以下摘录解释了的情况
模型缓存
发现模型、处理数据注释和应用流利的API配置都需要一些成本。为了避免每次实例化派生的DbContext时产生这种成本,在第一次初始化期间缓存模型。每次在同一个AppDomain中构造相同的派生上下文时,都会重新使用缓存的模型。
这可能会对您有所帮助:MSDN: Performance Considerations for Entity Framework 5
特别是,我发现,如果您有一个大型模型,那么预编译视图最有帮助。