我有一个包含大量记录的数据库。我有无法过滤为SQL的记录过滤条件。请考虑以下情形:
IItemRepository repo = new ItemRepository();
IQueryable<Item> items = repo.Getall();
IEnumerator<Item> itemEnumerator = items.GetEnumerator();
List<BinaryData> binaryDataList = new List<BinaryData>();
while (binaryDataList.Count < 20 && itemEnumerator.MoveNext())
{
BinaryData binaryData = BinaryData.Extract(itemEnumerator.Current.BinaryData);
if (IsValidBinaryData(binaryData))
{
binaryDataList.Add(binaryData);
}
}
一旦程序退出while
循环,查询将继续在服务器上执行还是停止?我需要停止它,因为在此数据库上执行Getall()
查询会很疯狂。
编辑:我已经简化了该方案,在实际情况下,存在一些过滤器和排序,但是复制和粘贴该复杂代码没有意义。