我试图回归" Pessoa"列出您当前的#34; 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
。我怎样才能完成我的方法?
答案 0 :(得分:2)
这将是
using (var conexao = new SqlConnection(strConexao))
{
return conexao.Query<Pessoa, Endereco, Pessoa>(QUERY,
splitOn: "IdTipoPessoa",
map: (p, e) => {
p.endereco = e;
return p;
}
);
}
更多细节可以在我写的关于这个主题的文章中找到: