我有一个具有以下属性的 Customer 类:
public int Id { get; set; }
public string Name { get; set; }
public int AddressId { get; set; }
public Address Address { get; set; }
我的目标是编写一个 Dapper 查询,该查询将使用内部联接来填充返回的每个 Customer 中的整个 Address 属性。
这是我所拥有的,它正在工作,但我想知道这是否是最干净/最简单的方法:
StringBuilder sql = new StringBuilder();
using (var conn = GetOpenConnection())
{
sql.AppendLine("SELECT c.Id, c.Name, c.AddressId, a.Address1, a.Address2, a.City, a.State, a.ZipCode ");
sql.AppendLine("FROM Customer c ");
sql.AppendLine("INNER JOIN Address a ON c.AddressId = a.Id ");
return conn.Query<Customer, Address, Customer>(
sql.ToString(),
(customer, address) => {
customer.Address= address;
return userRole;
},
splitOn: "AddressId"
).ToList();
}
我对添加另一个属性有些担心,例如:
public Contact Contact { get; set; }
我不确定如何切换上面的语法来填充地址和联系人。