我想要从包含超过200万行的表中删除重复记录。我有一个IEntityQuery进行分组和计数,并返回count()>问题是这个查询也可以返回超过一百万行。我想使用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--
答案 0 :(得分:1)
如果在执行之前执行Take(),则生成的SQL将包含Top运算符。所以像这样:
var query = from log in Manager.Logs
select log;
query
.Take(100)
.ToList();
如果您的实际查询类型由于分组而更复杂,则可能需要进行强制转换才能使用Take方法。