Performance 与本地集合并行加载多个数据库集的最佳方法
我有多个数据库集,我想同时加载到数据库集的本地集合属性,以提高性能。这些表在数据库中没有外部约束连接。我有大约20个数据库集要同时加载,每个需要0.3秒。总共6秒Performance 与本地集合并行加载多个数据库集的最佳方法,performance,entity-framework,parallel-processing,local,dbset,Performance,Entity Framework,Parallel Processing,Local,Dbset,我有多个数据库集,我想同时加载到数据库集的本地集合属性,以提高性能。这些表在数据库中没有外部约束连接。我有大约20个数据库集要同时加载,每个需要0.3秒。总共6秒 using (var context = new System.Data.Entity.MyDbContext()) { context.table1.Load(); context.table2.Load(); // Processing the local data context.table1.Loc
using (var context = new System.Data.Entity.MyDbContext())
{
context.table1.Load();
context.table2.Load();
// Processing the local data
context.table1.Local.foreach(t => DoStuff());
}
我试过了
await Task.WhenAll(context.table1.LoadAsync(), context.table2.LoadAsync());
但是不能同时对多个查询使用同一上下文。为每个查询创建新的上下文并不能提高查询的时间效率 Parallel.Invoke还只加载它正在调用的最后一个DbSet.Load()
那么有人知道解决这个问题的另一种最佳做法吗?“而且为每个查询创建新的上下文并不能提高时间效率。”还有什么其他选择吗?