Sql server 是否可以创建实体框架上下文的副本';s实例进行并行查询

Sql server 是否可以创建实体框架上下文的副本';s实例进行并行查询,sql-server,entity-framework,asp.net-web-api,task-parallel-library,Sql Server,Entity Framework,Asp.net Web Api,Task Parallel Library,堆栈:AngularJs、Web API、实体框架、SQL Server 我需要使用并行查询查询SQL Server以更快地获得结果 我使用的是Web API,可以将查询拆分为单独的Web API调用,因为它会为每个Web API调用创建一个新的数据库上下文副本,但是我想知道是否可以在一个Web API调用中执行该操作。(我假设我需要为每个并行查询创建一个单独的上下文副本,因为Entity Framework不允许为同一个上下文实例并行调用多个查询) 我正在使用Unity DI容器创建上下文实例

堆栈:AngularJs、Web API、实体框架、SQL Server

我需要使用并行查询查询SQL Server以更快地获得结果

我使用的是Web API,可以将查询拆分为单独的Web API调用,因为它会为每个Web API调用创建一个新的数据库上下文副本,但是我想知道是否可以在一个Web API调用中执行该操作。(我假设我需要为每个并行查询创建一个单独的上下文副本,因为Entity Framework不允许为同一个上下文实例并行调用多个查询)


我正在使用Unity DI容器创建上下文实例。

如果您要在多个线程上查询数据库,那么是的,您必须为每个线程启动一个新的上下文实例。但是,如果您以任何方式修改数据库/数据,从而在每个线程中验证查询结果,或者最终得到的结果不一定是您想要的,请务必小心


我以前在数据库中进行过多线程插入(不是推荐的路径,但我更多的是为了测试是否可以),你只需记住每个线程将所有连接和实体分开,否则EF会对你大喊大叫。

好吧,你可以设置容器,每次调用创建一个新实例。。。在Unity上,我建议您创建一个命名条目(使用
PerResolveLifetimeManager
),并将现有条目留给应用程序的其余部分(只是为了分离方法)

哦,记住手动处理这些新上下文