ASP MVC - 如何使用 table 名称分隔 tables(从存储过程接收)
ASP MVC - how to separate tables (received from stored procedure) using table names
我曾经通过将数据集放入 DataSet ds 中来从单个存储过程返回多个 tables(在我的旧 aspx 项目中),例如
DataTable dt1 = ds.Tables["tabe_name1"];
DataTable dt2 = ds.Tables["tabe_name2"]
如果只返回一个 table,我可以使用模型获得 table,使用函数
con.Query<ModelName>("STORED_PROCEDURE", param, commandType: CommandType.StoredProcedure);
如何使用 Dapper 在 MVC 中执行此操作?
谢谢:)
要获得多个网格,您必须使用:
using(var multi = conn.QueryMultiple(...)) {
// see below
}
在 "see below" 内,您可以依次 访问每个网格 ,仅访问一次 - 它们未命名。例如:
using(...) {
var orders = multi.Read<Order>().AsList();
var custs = multi.Read<Customer>().AsList();
}
@Marc,当我尝试你的回答时,这些也对我有用。
var orders = multi.Read<Order>().Single<Order>();
var orders = multi.Read<Order>().ToList<Order>();
var orders = multi.Read<string>().Single<string>();
//这第三个就像在 aspx 项目中调用 ExecuteScalar 一样工作,即,仅获取单元格 (0,0) 的值。
我曾经通过将数据集放入 DataSet ds 中来从单个存储过程返回多个 tables(在我的旧 aspx 项目中),例如
DataTable dt1 = ds.Tables["tabe_name1"];
DataTable dt2 = ds.Tables["tabe_name2"]
如果只返回一个 table,我可以使用模型获得 table,使用函数
con.Query<ModelName>("STORED_PROCEDURE", param, commandType: CommandType.StoredProcedure);
如何使用 Dapper 在 MVC 中执行此操作?
谢谢:)
要获得多个网格,您必须使用:
using(var multi = conn.QueryMultiple(...)) {
// see below
}
在 "see below" 内,您可以依次 访问每个网格 ,仅访问一次 - 它们未命名。例如:
using(...) {
var orders = multi.Read<Order>().AsList();
var custs = multi.Read<Customer>().AsList();
}
@Marc,当我尝试你的回答时,这些也对我有用。
var orders = multi.Read<Order>().Single<Order>();
var orders = multi.Read<Order>().ToList<Order>();
var orders = multi.Read<string>().Single<string>();
//这第三个就像在 aspx 项目中调用 ExecuteScalar 一样工作,即,仅获取单元格 (0,0) 的值。