我有一个Customer类,具有以下属性:
public int Id { get; set; }
public string Name { get; set; }
public int AddressId { get; set; }
public Address Address { get; set; }
我的目标是编写一个Dapper查询,使用内连接填充返回的每个客户的整个地址属性。
以下是我已经拥有并且有效运行,但我想知道这是否是最简洁/简单的方法:
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; }
我不确定如何更改上述语法以填充地址和联系人。
Id
),然后只需使用Query<Customer, Address, Contact, Customer>
即可。 - juharr