我使用的是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;
}
}
}
这是尝试修复性能问题而无需更改所有代码。
再次感谢你。