我有一個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