【问题标题】:Create Multiple join query - Dapper创建多个连接查询 - 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 Startedit 您的帖子。

标签: c# orm dapper


【解决方案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 表具有相关的外键。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    • 1970-01-01
    • 1970-01-01
    • 2017-10-13
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    相关资源
    最近更新 更多