创建多个连接查询 - Dapper
Posted
技术标签:
【中文标题】创建多个连接查询 - Dapper【英文标题】:Create Multiple join query - Dapper 【发布时间】:2019-11-05 18:39:39 【问题描述】:最近我正在开发一个应用程序,我的导师让我使用 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 join 查询执行的结果存储到 CustomDTO 中
【问题讨论】:
问“我从哪里开始?”的问题通常过于宽泛,不适合本网站。人们有自己解决问题的方法,因此不可能有正确的答案。仔细阅读 Where to Start 和 edit 您的帖子。 【参考方案1】:正如已经指出的那样,您确实需要在帖子中提供更多信息,这样人们就不必做出太多假设。 根据您所说,一种可能的方法是这样的:
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();
注意:我假设您的 Orders 表具有相关的外键。
【讨论】:
以上是关于创建多个连接查询 - Dapper的主要内容,如果未能解决你的问题,请参考以下文章