gpt4 book ai didi

c# - 如何优化 linq 查询的速度?

转载 作者:太空狗 更新时间:2023-10-30 00:11:18 27 4
gpt4 key购买 nike

我有一个 linq 查询,它将客户表中的所有记录提取到一个可观察的集合中,如下所示:

customerList = new ObservableCollection<customer>(dbContext.customers);
dgRecords1.ItemsSource = customerList;

列表绑定(bind)到数据网格。客户表包含近百个字段。但是我在数据网格上只显示了几个字段。我的问题是

whether bringing of only selected fields from the database using linq query increase the speed the customer screen?

我需要过滤并有时删除此列表中的记录。

将少数字段选择到可观察集合中的最佳方法是什么,有人可以提供一些示例 linq 查询吗?

最佳答案

优化速度的提示:

  • 减少列减少所需的带宽
  • 减少行,但引入分页,减少带宽更多(通常)
  • 关闭更改跟踪和身份管理(例如 LINQ-to-SQL 中的 ObjectTrackingEnabled)将减少数据后处理的开销
  • 使用预编译查询有时可以帮助减少预处理开销

...但坦率地说,当我们遇到这个问题时,我们通过编写“dapper”并采用老派的方式“一劳永逸”地解决了它:

var list = connection.Query<CustomerViewModel>(
"select {some specific cols} from Customers").ToList();

其中 CustomerViewModel 是与 LINQ 等无关的简单 POCO 类型,它只具有所需的值,例如:

class CustomerViewModel {
public int Id {get;set;}
public string Name {get;set;}
// ...
}

这减少了所有不必要的开销,并且在您只想显示数据时是理想的选择;此外,参数化层和物化层都经过了非常优化(使用策略缓存,以获得最佳性能)。

关于c# - 如何优化 linq 查询的速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13858731/

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