【问题标题】:Optimize Nested Linq to SQL Query优化嵌套 Linq to SQL 查询
【发布时间】:2014-07-22 15:49:01
【问题描述】:

我有一个要优化的 linq to sql 查询。我已经找到了一个与调用数据库的 sql 查询数量有关的主要问题。由于查询的嵌套性质 - 它很大! (在 SQL 分析器中尝试 14,000 行)。哎哟!

我正在研究预加载和使用 LoadWith - 但嵌套查询似乎存在限制? (错误:System.InvalidOperationException:LoadOptions LoadWith 类型图中不允许循环。)。关于如何让 Linq to SQL 加载一些相关数据并减少数据库命中的任何想法?谢谢!

        List<EBCFPS> ebcfpsList = (from c in v3
                                                                    group c by c.CId into g
                                                                    select new EBCFPS()
                                                                    {
                                                                        CId = g.First().CId,
                                                                        CName = g.First().CName,
                                                                        CType = g.First().CType,
                                                                        SortOrder = g.First().SortOrder == null ? 0 : (int)g.First().SortOrder,
                                                                        EsGroup = (from q in g
                                                                                         select new EFPS()
                                                                                         {
                                                                                             EId = (int)q.EId,
                                                                                             EName = q.EName,
                                                                                             CESGroup = (from s in db.CES
                                                                                                              where s.EId == q.EId
                                                                                                              && s.CId == q.CId
                                                                                                              select new CESSFPS()
                                                                                                              {
                                                                                                                  CESId = s.CESId,
                                                                                                                  CId = s.CId,
                                                                                                                  EId = s.EId == null ? 0 : (int)s.EId,
                                                                                                                  FSCId = s.FSCId == null ? 0 : (int)s.FSCId,
                                                                                                                  SEV = s.SEV,
                                                                                                                  Score = s.Score
                                                                                                              }).ToList()
                                                                                         }).ToList()
                                                                    }).ToList();

抱歉,代码看起来有点粗糙。

【问题讨论】:

  • 有什么想法吗??提前致谢!

标签: optimization linq-to-sql nested


【解决方案1】:

答案是编译查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-13
    • 2018-07-24
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多