【发布时间】:2019-06-20 06:04:49
【问题描述】:
我创建了一个返回单个列表的通用方法。但我需要传递多个列表,它会使用实体框架在 mvc 中返回多个列表结果集。
public void ExecuteList<T>(out List<T> obj, string sql, params object[] parameters) where T : class
{
using (var db = _context)
{
var cmd = db.Database.Connection.CreateCommand();
cmd.CommandText = sql;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddRange(parameters);
try
{
db.Database.Connection.Open();
using (var reder = cmd.ExecuteReader())
{
obj = ((IObjectContextAdapter)db).ObjectContext.Translate<T>(reder).ToList();
}
}
finally
{
db.Database.Connection.Close();
cmd.Dispose();
}
}
}
当我在控制器中调用此方法时,它会给我一个列表。
public ActionResult Index()
{
List<SqlParameter> parameterList = new List<SqlParameter>();
parameterList.Add(new SqlParameter("@pageNo", 1));
parameterList.Add(new SqlParameter("@pageSize", 5));
SqlParameter[] parameters = parameterList.ToArray();
List<PostModel> PostModel = new List<PostModel>();
Uow.ExecuteList<PostModel>(out PostModel, "[dbo].[sp_getdata]", parameters);
return View();
}
但我需要传递多个列表,它会给我多个列表结果。
List<SqlParameter> parameterList = new List<SqlParameter>();
parameterList.Add(new SqlParameter("@pageNo", 1));
parameterList.Add(new SqlParameter("@pageSize", 5));
SqlParameter[] parameters = parameterList.ToArray();
List<PostModel> PostModel = new List<PostModel>();
List<Tag> Tag = new List<Tag>();
Uow.ExecuteList<PostModel,Tag>(out PostModel, out Tag, "[dbo].[sp_Getdata]", parameters);
请帮我完成上述要求。
【问题讨论】:
-
这个很不清楚,请花点时间更详细地解释您的需求和愿望(而不是在 cmets)编辑问题
标签: c# asp.net-mvc list entity-framework generic-list