如何使用Dapper处理多个结果集与多重映射实例教程

2020-01-05 09:27:15王冬梅

最后,在第三个场景中,返回的实体是1-1,因此我们希望检索数据,然后将结果映射到具有1-1关系的POCO中。 现在让我们看看一些代码,了解如何使用Dapper来实现这一切。 所有这些都可以通过DAPPER的查询、QueryMultiple和Read方法进行归档。现在让我们把重点放在如何在代码中执行这些操作。

查询无关实体

假设我们想从API中检索书籍和视频列表。我们可以通过两个简单的选择所有查询来实现这一点,数据库结果看起来如

Dapper,结果集,多重映射

现在,为了能够从代码中执行同样的操作,我们首先需要定义我们的实体:


public class Book
{
 public int ID { get; set; }
 public string BookName { get; set;}
 public string ISBN { get; set; }
}

public class Video
{
 public int ID { get; set; }
 public string VideoName { get; set; }
}

使用这些模型,让我们看看如何只使用一个数据库调用来使用DAPPER检索这些结果:


public IActionResult Index()
{
 // define our SQL query - it contains mulitple queries seprated by ;
 var query = "SELECT * from Books; Select * from Videos";

 // Execute the query
 var results = dbConnection.QueryMultiple(query);

 // retrieve the results into the respective models
 var books = results.Read<Book>();
 var videos = results.Read<Video>();

 return Ok(new { Books = books, Videos = videos});
}

现在让我们在POSTMAN中运行,以查看行动中的结果: