ASP MVC: cómo separar tablas (recibidas del procedimiento almacenado) usando nombres de tablas

asp.net-mvc c# dapper

Pregunta

Solía ​​obtener varias tablas (en mi antiguo proyecto aspx) devueltas de un solo procedimiento almacenado, al obtener el conjunto de datos en un DataSet ds, como

DataTable dt1 = ds.Tables["tabe_name1"]; DataTable dt2 = ds.Tables["tabe_name2"]

Puedo obtener la tabla usando un modelo si solo se devuelve una tabla, usando la función

con.Query<ModelName>("STORED_PROCEDURE", param, commandType: CommandType.StoredProcedure);

¿Cómo puedo hacer esto en MVC usando Dapper?

Gracias :)

Respuesta aceptada

Para obtener múltiples cuadrículas, debes usar:

using(var multi = conn.QueryMultiple(...)) {
    // see below
}

Dentro del "ver a continuación", puede acceder a cada cuadrícula por turno , una sola vez, no se nombran. Por ejemplo:

using(...) {
    var orders = multi.Read<Order>().AsList();
    var custs = multi.Read<Customer>().AsList();
}

Respuesta popular

@Marc, estos también me funcionaron mientras probé tu respuesta.

var orders = multi.Read<Order>().Single<Order>(); var orders = multi.Read<Order>().ToList<Order>(); var orders = multi.Read<string>().Single<string>(); // este tercero funcionaba como si llamara ExecuteScalar en proyectos aspx, es decir, para obtener el valor de la celda (0,0) solamente.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué