有没有办法从带有连接的单个选择中返回多个结果集?

时间:2018-04-11 17:11:40

标签: c# sql-server

我使用的是SQL SERVER,我想要这样的东西:

begin
 declare @A, @B

 select A.* into @A, B.* into @B from tableA as A left join tableB as B on 
 A.id = B.id_A

 select distinct * from A
 select distinct * from B
end

注意:我在示例中使用的sintax是错误的,我知道,这只是因为我无法声明现有表类型的变量来存储结果,而我不知道是否有可能做某事来使用光标或其他东西返回那种结果。

我会感谢任何建议。

注意2:我尝试在DataSet中使用结果,获取每个表,并在此处使用此函数将其转换为每个结果的多个List(EF已映射所有表)。

public static class Helper
{
    private static readonly IDictionary<Type, ICollection<PropertyInfo>> _Properties =
        new Dictionary<Type, ICollection<PropertyInfo>>();

    public static List<T> DataTableToList<T>(this DataTable table) where T : class, new()
    {
        try
        {
            List<T> list = new List<T>();

            foreach (DataRow row in table.Rows)
            {
                T obj = new T();

                foreach (var prop in obj.GetType().GetProperties())
                {
                    if (table.Columns.Contains(prop.Name))
                    {
                        if (!row.IsNull(prop.Name))
                        {
                            prop.SetValue(obj, row[prop.Name]);
                        }
                    }
                }

                list.Add(obj);
            }

            return list;
        }
        catch
        {
            return null;
        }
    }
}

这是尝试修复性能问题而无需更改所有代码。

再次感谢你。

0 个答案:

没有答案