Dapper - 如何将记录作为自定义对象类型返回?
Posted
技术标签:
【中文标题】Dapper - 如何将记录作为自定义对象类型返回?【英文标题】:Dapper - How to return record as Custom object type? 【发布时间】:2021-08-21 02:44:21 【问题描述】:我正在尝试使用 Dapper 运行查询并将数据映射到自定义类对象 Emp。
public class Emp
public string Name get; set;
public string Address get; set;
public string LastName get; set;
我的小巧执行代码:
string connectionString = @"Server = myserver; userid = test; password = test; database = testdb; port = 3306; Convert Zero Datetime=True";
using (var connection = new mysqlConnection(connectionString))
string sql = "SELECT * FROM EMP where empno = 1010;
List<Emp> empList = connection.Query<Emp>(sql: sql).ToList();
上面的代码工作正常。 我尝试了以下,
Emp emp = (Emp)connection.Query<Emp>(sql:sql);
错误:无法将 System.Collections.Genetic List[Emp] 类型的对象转换为 Emp 类型
我可以得到如下记录及其工作。
Emp emp1 = empList[0];
无论如何我可以得到查询返回类型为 Emp 吗?
【问题讨论】:
Query<T>
将返回一个IEnumerable<T>
。只需调用.FirstOrDefault()
,您将获得T
或null
【参考方案1】:
Query 方法返回一个记录列表(行)。
要只获得一个结果,您需要使用 QuerySingle
或 QuerySingleOrDefault
Emp emp = connection.QuerySingleOrDefault<Emp>(query);
【讨论】:
以上是关于Dapper - 如何将记录作为自定义对象类型返回?的主要内容,如果未能解决你的问题,请参考以下文章
如何将从webapi返回的自定义对象数组的HttpResponse响应分配给打字稿角度中相同数组类型的对象?