如何使用 Sliton 和 Types 映射复杂对象?
How to map a complex object using Spliton and Types?
我正在尝试 return 一个 "Pessoa" 列表与您当前 "Endereco"
使用 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
);
}
}
我知道可以使用 Types
、Mapping
和 SplitOn
。我怎样才能完成我的方法?
会是这样的
using (var conexao = new SqlConnection(strConexao))
{
return conexao.Query<Pessoa, Endereco, Pessoa>(QUERY,
splitOn: "IdTipoPessoa",
map: (p, e) => {
p.endereco = e;
return p;
}
);
}
更多细节可以在我写的关于这个主题的文章中找到:
我正在尝试 return 一个 "Pessoa" 列表与您当前 "Endereco" 使用 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
);
}
}
我知道可以使用 Types
、Mapping
和 SplitOn
。我怎样才能完成我的方法?
会是这样的
using (var conexao = new SqlConnection(strConexao))
{
return conexao.Query<Pessoa, Endereco, Pessoa>(QUERY,
splitOn: "IdTipoPessoa",
map: (p, e) => {
p.endereco = e;
return p;
}
);
}
更多细节可以在我写的关于这个主题的文章中找到: