gpt4 book ai didi

asp.net-mvc-3 - 如何以更好的方式编写此 LINQ 查询

转载 作者:行者123 更新时间:2023-12-01 02:33:59 26 4
gpt4 key购买 nike

我有一个 Linq 查询。当我运行查询时,只有 10 条记录需要 13 秒才能将数据提取到模型中。我需要知道我写的查询是否有利于性能。请指导我做错了什么。

代码

    var stocktakelist = (from a in Db.Stocktakes
select new ExportStock
{
Id = a.Id,
ItemNo = a.ItemNo,
AdminId = (from admin in Db.AdminAccounts where admin.Id == a.Id select admin.Name).FirstOrDefault(),
CreatedOn = a.CreatedOn,
Status = (from items in Db.Items where items.ItemNo == a.ItemNo select items.ItemStatu.Description).FirstOrDefault(),
Title = (from tit in Db.BibContents where tit.BibId == (from bibs in Db.Items where bibs.ItemNo == a.ItemNo select bibs.BibId).FirstOrDefault() && tit.TagNo == "245" && tit.Sfld == "a" select tit.Value).FirstOrDefault() // This line of Query only makes the performance Issue
}
).ToList();

谢谢

最佳答案

之所以这么慢,是因为它正在为外部 LINQ 语句中的每个 项目运行 3 个内部 LINQ 语句。使用 LINQ 联接将只运行 4 个查询,然后将它们链接在一起,这样速度更快。

要了解如何加入,Internet 上有大量资源,具体取决于您使用的 LINQ 类型。

如果您要从 SQL 服务器检索这些数据,或许可以考虑在 SQL 中完成这项密集型工作 - 这就是 SQL 的设计目的,而且它比 .NET 快得多。 编辑:如下所示,如果使用 LINQ to SQL/Entities 并使用正确的连接语法,工作在 SQL 中完成。

关于asp.net-mvc-3 - 如何以更好的方式编写此 LINQ 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14157769/

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