我有以下通用方法,在读取1个结果集时非常有效。我一直在努力编写一个泛型方法来返回多个结果集 你可以给我一个手或建议如何将下面的一个变成一个返回/处理多个结果集的方法。
用法:
const string spName = "GetCountry";
object[] parms = { "@CountryId", countryId };
myDto dto = spName.GetOne(ToDto, parms);
return model;
public static T GetOne<T>(this string spName,
Func<IDataReader, T> createObject,
object[] parms = null)
{
try
{
using (var connection = new SqlConnection(ConnectionString))
{
using (var command = new SqlCommand())
{
command.Connection = connection;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = spName;
command.SetParameters(parms);
connection.Open();
T t = default(T);
var reader = command.ExecuteReader();
if (reader.Read())
{
t = createObject(reader);
}
return t;
}
}
}
catch (SqlException ex)
{
etc......
}
return default(T);
}
一个例子是:具有地址的客户(SP将通过在sp内返回2个结果集来返回客户所有相关地址) 非常感谢任何建议