【问题标题】:DevForce 2010 Top n queryDevForce 2010 Top n 查询
【发布时间】:2015-07-22 18:33:31
【问题描述】:

我想从包含超过 200 万行的表中删除重复记录。我有一个 IEntityQuery 进行分组和计数并返回其中 count() > 1。问题是这个查询也可能返回超过一百万行。我想使用 DevForce 进行 TOP 100 查询,但我还没有找到方法。我意识到我可以在 Execute() 之后使用 .Take(100),但这需要返回所有行然后取 100。我希望查询只从数据库返回 100 行。这似乎是一个相当普遍的需求,但到目前为止,我还没有在网络或 IdeaBlade 的网站上找到任何关于如何实现这一点的示例。

谢谢!!!

var query = from log in Manager.Logs
            select logs;

 query
      .Execute()
      .ToList()
      .Take(100);  --Bad for this query--

【问题讨论】:

    标签: sql devforce top-n


    【解决方案1】:

    如果在 Execute 之前执行 Take(),生成的 SQL 将包含 Top 运算符。所以是这样的:

    var query = from log in Manager.Logs
                select log;
    query
          .Take(100)
          .ToList();
    

    如果您的实际查询类型由于分组而更复杂,您可能需要进行强制转换才能使用 Take 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-01
      • 2011-10-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多