gpt4 book ai didi

c# - 使用 Entity Framework 运行并行计数查询

转载 作者:太空宇宙 更新时间:2023-11-03 10:37:15 25 4
gpt4 key购买 nike

我有一个搜索功能,需要向用户显示几个类别的搜索摘要,现在,它所做的是一次一个查询,一个用于搜索本身,一个用于每个摘要(分组依据查询)。最终结果是一个显示搜索结果的页面和一个带有摘要的右栏,例如项目可用的状态及其数量、颜色、尺寸等。

正如我所说,这些查询是一个一个完成的,我想做的是将所有这些摘要查询分组并使用 Parallel.Invoke 方法执行它们,只留下返回的查询搜索结果本身出自这种并行方法。

我想做的是获得一些性能,因为所有这些查询都是计数数据,它不会对数据库进行任何更新。

那行得通吗?如果没有,最好的解决方案是什么?我正在使用依赖注入(inject),我认为为每个查询创建一个新的 DbContext 的设计更改会有很大的变化......

最佳答案

这将不起作用,因为 DbContext 是 not guaranteed to be thread-safe .这实际上意味着即使是不影响数据库状态的只读查询,也会让您遇到并发问题。

您需要为每个并行查询提供单独的 DbContext 实例。

另一种解决方案是在数据库中创建一个 View 来“计算”所需的结果。

关于c# - 使用 Entity Framework 运行并行计数查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27215670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com