如何在 Dapper 中查询一对多关系并返回分组对象

问题描述 投票:0回答:1

我有这个sql:

SELECT I.*, IG.Id 
FROM Images I 
JOIN ImageGroup IG ON I.ImageGroupId = IG.Id 
WHERE IG.Id = @imageGroupId

(让我们假设除了

IG.Id
我们还有其他列,因为我们已经有了id)

我需要返回一个带有 Id 和其他列以及图像列表的对象

ImageGroup
。我不想要 Dapper 的查询返回的
IEnumerable<ImageGroup>

如何以最有效和预期的方式使用 Dapper 做到这一点?

.net dapper
1个回答
0
投票

根据您的查询,

Image
ImageGroup
表似乎都是 1-1 关系。

要仅获得单行,您可以使用文档中所述的任何一种方法。

  • QuerySingle
    - 只返回一行。如果返回零行或多于 1 行,则抛出异常。

  • QuerySingleOrDefault
    - 只返回一行。如果返回超过 1 行,则抛出异常。

  • QueryFirst
    - 返回第一行。如果没有返回行则抛出异常。

  • QueryFirstOrDefault
    - 返回第一行。

var image = connection.QuerySingleOrDefault<ImageModel>(/* Your SQL query */);
using System.Linq;

var image = connection.Query<ImageModel>(/* Your SQL query */)
    .FirstOrDefault();
© www.soinside.com 2019 - 2024. All rights reserved.