Dapper: columna de mapa personalizado para el objeto anidado

c# dapper orm

Pregunta

Quiero asignar un valor de columna al objeto anidado.

por ejemplo en mi tabla de base de datos tengo:

Users
(
 varchar UserName,
 varchar Password,
 binary  Permitions
)

en mi código tengo:

User{string UserName, string Password, Permition Permitions: {...}}

Quiero hacer algo como

db.Query<User>("Select UserName, Password, Permisions PermitionsFromTable
from Users WHERE UserName=@User AND Password =@Password", new { user, 
password
}, user =>
 {
 user.Permitions = new Permition();
 user.Permitions.LoadPermitions("PermitionsFromTable");
 return user ;
});

¿Es posible?

Respuesta aceptada

Hay una sobrecarga de Query que le permite especificar más de un tipo para mapear y un tipo de resultado y puede decirle a la columna que se divida, luego puede combinar los tipos. Entonces, algo como esto debería funcionar para lo que quieres.

db.Query<User, byte[], User>(
    queryString,
    new { user, password },
    splitOn: "PermisionsFromTable",
    (user, perm) =>
    {
        user.Permitions = new Permition();
        user.Permitions.LoadPermitions(perm);
        return user;
    });


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é