当我启动时可以控制程序并初始化我的DbContext类,我的程序每次等待20秒。
没有dbContext类都可以正常工作。 谁知道为什么?
这里是someCode
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(string siteName) { var site = dbContext.Sites.FirstOrDefault(s =&gt; 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));
}
答案 0 :(得分:2)
The following excerpt explains what is going on
模型缓存
发现模型,处理数据注释和应用流畅的API配置需要花费一些成本。为了避免每次实例化派生的DbContext时产生此成本,在第一次初始化期间缓存模型。每次在同一AppDomain中构造相同的派生上下文时,都会重新使用缓存的模型。
答案 1 :(得分:0)
这可能会对您有所帮助:MSDN: Performance Considerations for Entity Framework 5
特别是,我发现如果您拥有大型模型,预编译视图会有所帮助。