gpt4 book ai didi

c# - 我怎样才能加快这些 linq 查询?

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

我可以将以下两个 linq 查询合并为一个查询以加快速度吗?

第一个,搜索并执行分页

 Products.Data = db.Products.Where(x =>  x.ProductCode.Contains(search) ||
x.Name.Contains(search) ||
x.Description.Contains(search) ||
x.DescriptionExtra.Contains(search) ||
SqlFunctions.StringConvert(x.Price).Contains(search) ||
SqlFunctions.StringConvert(x.PriceOffer).Contains(search) ||
SqlFunctions.StringConvert(x.FinalPrice).Contains(search) ||
SqlFunctions.StringConvert(x.FinalPriceOffer).Contains(search))
.OrderBy(p => p.ProductID)
.Skip(PageSize * (page - 1))
.Take(PageSize).ToList();

而第二个计算过滤结果的总数。

    int count = db.Products.Where(x => x.ProductCode.Contains(search) ||
x.Name.Contains(search) ||
x.Description.Contains(search) ||
x.DescriptionExtra.Contains(search) ||
SqlFunctions.StringConvert(x.Price).Contains(search) ||
SqlFunctions.StringConvert(x.PriceOffer).Contains(search) ||
SqlFunctions.StringConvert(x.FinalPrice).Contains(search) ||
SqlFunctions.StringConvert(x.FinalPriceOffer).Contains(search))
.Count();

最佳答案

摆脱低效得离谱的转化。

SqlFunctions.StringConvert(x.Price).Contains(search) ||

不可能使用索引、全表扫描和转换 - 这已经很糟糕了。

并确保您拥有所有索引。

您无能为力。

关于c# - 我怎样才能加快这些 linq 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35899972/

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