最好的方法是与本地集合并行加载多个DbSet

问题描述

我想同时将多个DbSet加载到DbSet的Local-Collection属性,以提高性能。这些表在数据库中没有外部约束连接。我大约有20个DbSet可以同时加载,每个DbSet需要0.3秒。这样总共6秒钟。

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()。

那么有人知道该问题的另一种最佳实践吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)