1

我有一个基于复杂查询返回记录集(结果集 A)的存储过程,并且记录按特定顺序排列。我有另一个查询,它从另一个表(结果集 B)返回 ID 值。

我想做类似“从结果集 A 中获取记录,其中 id 存在于(结果集 B)中”。

我需要在代码隐藏中执行此操作。任何想法如何去做这件事?

4

1 回答 1

1

您可以使用这种扩展方法 - 基于产量和Linq Contains operator

public static IEnumerable<string> Select(this DataReader reader, int index)
{
    while (reader.Read())
    {
        yield return reader[index].ToString();
    }
}

注意:您有两个记录集 reader1 和 reader2,选择扩展方法获取项目 IEnumerable 的列表。

var list1 = reader1.Select(0); //Search on first column;
var list2 = reader2.Select(0);
//Get list items of values (index 0) of list2, who exist in list1.
var result = from item on list2.Select(0)
             where list1.Contains(item)
             select item;
于 2012-10-12T12:20:32.857 回答