Escribir Dapper Query para objetos anidados

dapper orm

Pregunta

Tengo un código de estructura como a continuación:

class Person
{
    Name PersonName;
    int Age;
}

class Name
{
    string FirstName { get; set; }
    string LastName { get; set; }
}

Aquí está mi Stored Proc que rellena los datos de la base de datos.

Create Procedure SpGetAllPersons
As
Select FirstName, LastName, Age from Persons

¿Cómo escribo la consulta Dapper que extrae a toda la persona de la base de datos?

Ejemplo:

List<Person> Persons = DbConn.Query<Person>("SpGetAllPersons", CommandType.StoredProcedure);

Respuesta aceptada

Necesita usar el mapeador múltiple si desea seleccionar objetos anidados.

Esto debería funcionar:

List<Person> persons = DbConn.Query<Name,Person,Person>
  ("SpGetAllPersons",
     (name,person) => {person.Name = name; return person;} 
     commandType: CommandType.StoredProcedure, 
     splitOn: "Age");

El multi-mapeador puede devolver cualquier tipo, incluso solo un tipo agregado que no esté mapeado en ninguna tabla db.

Es importante suministrar el splitOn si tiene la intención de dividirlo en algo que no se llame id o Id .



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow