我有一个Customer类具有以下属性:查询到一个复杂的对象,具有小巧玲珑
public int Id { get; set; }
public string Name { get; set; }
public int AddressId { get; set; }
public Address Address { get; set; }
我的目标是编写将使用一个内连接到每个客户内填充整个地址属性短小精悍查询这是返回。
这里是我有什么,它是工作,但我想知道如果这是这样做的干净/简单的方法:我有添加其它财产,如有些担心
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'。 –
juharr