最近我正在开发一个应用程序,我的老师要求我将Dapper用作ORM。这是第一次进行。我想为3个表创建一个联接查询,并将值存储在自定义对象中。
这是表格:
public class Customer
{
public int id { get; set; }
public string fname { get; set; }
public string lname { get; set; }
public List<Orders> Order { get; set; }
}
public class Orders
{
public int id { get; set; }
public string code{ get; set; }
public string name { get; set; }
public Customer Customer { get; set; }
public Product Product { get; set; }
}
public class Product
{
public int id { get; set; }
public string name { get; set; }
public string price { get; set; }
public List<Orders> Order { get; set; }
}
此DTO类别:
public class CustomDTO
{
public string CustomerName { get; set; }
public string OrderName { get; set; }
public string ProductName { get; set; }
}
我想将dapper联接查询执行的结果存储到CustomDTO
答案 0 :(得分:0)
正如已经指出的那样,您确实需要在您的帖子中提供更多信息,因此人们不必承担太多。 根据您所说的,一种可能的方法是:
using (var connection = new SqlConnection("YOUR_CONNECTION_STRING"))
{
connection.Open();
string cmdTxt = @"SELECT o.name, c.name, p.name
FROM Orders o
INNER JOIN Customers c ON o.customerId = c.Id
INNER JOIN Products p ON o.productId = p.Id;";
var results = await connection.QueryAsync<CustomDTO>(cmdTxt);
if(results.Any()) {
//do something with the list of `CustomDTO`
}
connection.Close();
}
注意:我假设您的“订单”表具有相关的外键。