我有这个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 做到这一点?
根据您的查询,
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();