0

我有一个 LINQ 查询。当我运行查询时,执行操作需要花费大量时间。我怎样才能修改查询以表现良好。这是 LINQ 查询。

询问

var model = (from items in Db.Items
                         where items.ItemNo == DD.ItemNumber
                         select new ViewModel()
                         {
                             INo = items.ItemNo,
                             BTags = (from asd in Db.BibContents where asd.BibId == items.BibId && asd.TagNo == "245" && asd.Sfld == "a" select asd.Value).FirstOrDefault(),
                             Sid = (from stat in Db.ItemStatus1 where stat.Id == items.StatusId select stat.Description).FirstOrDefault(),
                             Option = DD.Option
                         }).ToList();
4

3 回答 3

3

您应该在 SQL Profiler 和 Query Analyzer 中分析查询。问题可能是您的表上的索引。

于 2012-11-29T12:05:07.120 回答
0

确保 EF 不会导致Select N+1问题。

http://blogs.microsoft.co.il/blogs/gilf/archive/2010/08/18/select-n-1-problem-how-to-decrease-your-orm-performance.aspx

于 2012-11-30T01:50:16.203 回答
0

首先,虽然您的查询始终使用数据库对象,但您最好在 SQL 中完成所有工作,只将结果带到 LINQ。

这可能会提高你的表现。

于 2012-11-29T13:02:34.560 回答