Stack:AngularJs,Web API,实体框架,SQL Server。
我需要使用并行查询来查询SQL Server,以便更快地获得结果。
我正在使用Web API并且可以将查询拆分为单独的Web API调用,因为它为每个Web API调用 创建了一个新的数据库上下文副本,但我想知道它是否是可以在一个Web API调用 中完成。 (我假设我需要为每个并行查询创建一个单独的上下文副本,因为实体框架不允许为同一个上下文实例并行调用多个查询。)
我正在使用Unity DI容器来创建上下文实例。
答案 0 :(得分:0)
如果您正在讨论在多个线程上查询数据库,那么是的,您必须为每个线程启动一个新的上下文实例。但是,如果您以任何方式修改数据库/数据,并在每个帖子中验证查询结果,或者最终得到您不一定想要的结果,请小心。
我之前已将多线程插入到数据库中(不是真正推荐的路径,但我更多地将其作为测试来查看是否可以)并且您只需要记住将所有连接和实体分开每个帖子或EF都会对你大喊大叫。
答案 1 :(得分:0)
好吧,你可以设置容器来为每次调用创建一个新实例...在Unity上,我建议你创建一个命名条目(使用function getAuthors() {
return [{
FirstName: "John",
MI: "J",
LastName: "Smith"
}];
}
console.log(getAuthors());
)并保留现有的一个应用程序(仅用于隔离方法)......
哦,记得手动处理这些新的上下文!