这个周末我正在使用任务并行化一段代码来运行仪表板页面所需的所有查询。
我现在拥有的是许多复制/粘贴方法,它们具有几乎完全相同的查询和方法末尾的不同行。
有没有办法针对一个对象上下文编写查询,然后将其分离并传递给一个方法?
我想做这样的事情:
using(DbContext db = new DbContext)
{
var query = db.cars.where(x => x.make == "Ford");
int handleCounts = getDoorHandleCounts(query);
}
public int getDoorHandleCounts(type? query)
{
using(DbContext db = new DbContext())
{
return query.where(x => x.partType == "DoorHandle").Count();
}
}
有任何想法吗?
请记住,我的所有 count() 方法都是从 Task 数组启动的,因此它们将并行运行。我需要一个新的对象上下文来运行每个计数查询。
我做了一些谷歌搜索并考虑尝试使用预编译的查询并从不同的对象上下文中调用它,但我的实际查询有点复杂,分配了 if 块来确定 where 条件。你能编译一个不是很简单的查询吗?