c# - framework - dapper.net core
dapper-multi-mapping: sql plano vuelve a los objetos anidados (1)
Para mí esto funciona perfecto ... ¿quizás un error tipográfico?
Veo PhyscialId
que definitivamente parece uno.
class Company
{
public int Id { get; set; }
public string Name { get; set; }
public Mailing Mailing { get; set; }
public Physical Physical { get; set; }
}
class Mailing
{
public int MailingId { get; set; }
public string Name { get; set; }
}
class Physical
{
public int PhysicalId { get; set; }
public string Name { get; set; }
}
public void TestSOQuestion()
{
string sql = @"select 1 as Id, ''hi'' as Name, 1 as MailingId,
''bob'' as Name, 2 as PhysicalId, ''bill'' as Name";
var item = connection.Query<Company, Mailing, Physical, Company>(sql,
(org, mail, phy) =>
{
org.Mailing = mail;
org.Physical = phy;
return org;
},
splitOn: "MailingId,PhysicalId").First();
item.Mailing.Name.IsEqualTo("bob");
item.Physical.Name.IsEqualTo("bill");
}
Tengo una empresa que contiene un objeto de dirección. El retorno de SQL es plano, y estoy tratando de obtener Consulta <> para cargar todos los objetos.
cnn.Query<Company,Mailing,Physical,Company>("Sproc",
(org,mail,phy) =>
{
org.Mailing = mail;
org.Physical = phy;
return org;
},
new { ListOfPartyId = stringList }, null, true, commandTimeout: null,
commandType: CommandType.StoredProcedure, splitOn: "MailingId,PhyscialId").ToList();
No estoy seguro si tengo el SplitOn correcto tampoco. Estoy recibiendo el mensaje:
Cuando utilice las API de asignación múltiple, asegúrese de configurar el parámetro splitOn si tiene claves distintas a la Id. Nombre del parámetro: splitOn
Las sugerencias serían geniales.
Los ejemplos en Test.cs no son lo que el código solicita como parámetros para las consultas. Estos necesitan ser actualizados