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) 的值。