gpt4 book ai didi

c# - 如何使用 Sliton 和 Types 映射复杂对象?

转载 作者:行者123 更新时间:2023-11-30 23:02:50 25 4
gpt4 key购买 nike

我正在尝试返回包含您当前的“Endereco”的“Pessoa”列表使用 Dapper。

public class Pessoa
{
public string tipoPessoa { get; set; }
public string nome { get; set; }
public string sobreNome { get; set; }
public string emailAdress { get; set; }
public Endereco endereco { get; set; }
}
public class Endereco
{
public int id { get; set; }
public string cep { get; set; }
public string logradouro { get; set; }
public string bairro { get; set; }
public string cidade { get; set; }
public string complemento { get; set; }
}

我的方法:

public IEnumerable<Pessoa> List()
{
var QUERY = @"SELECT P.Id, P.Nome, P.SobreNome, P.Email, P.IdTipoPessoa,
E.Bairro, E.Cep, E.Cidade, E.Complemento, E.Id, E.Rua as Logradouro
FROM Pessoa P
INNER JOIN PessoaEndereco PE on P.Id = PE.IdPessoa
INNER JOIN Endereco E on PE.IdEndereco = E.Id ";

using (var conexao = new SqlConnection(strConexao))
{
return conexao.Query<Pessoa>(QUERY,
splitOn: "IdTipoPessoa",
//Mapping
);
}
}

我知道可以使用 TypesMappingSplitOn。我怎样才能完成我的方法?

最佳答案

会是这样的

using (var conexao = new SqlConnection(strConexao))
{
return conexao.Query<Pessoa, Endereco, Pessoa>(QUERY,
splitOn: "IdTipoPessoa",
map: (p, e) => {
p.endereco = e;
return p;
}
);
}

更多细节可以在我写的关于这个主题的这篇文章中找到:

https://medium.com/dapper-net/multiple-mapping-d36c637d14fa

关于c# - 如何使用 Sliton 和 Types 映射复杂对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50273494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com