【问题标题】:Dapper - How to return record as Custom object type?Dapper - 如何将记录作为自定义对象类型返回?
【发布时间】: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&lt;T&gt; 将返回一个IEnumerable&lt;T&gt;。只需调用.FirstOrDefault(),您将获得T 或null

标签: c# .net-core orm dapper


【解决方案1】:

Query 方法返回一个记录列表(行)。 要只获得一个结果,您需要使用 QuerySingleQuerySingleOrDefault

Emp emp = connection.QuerySingleOrDefault<Emp>(query);

【讨论】:

    猜你喜欢
    • 2018-05-09
    • 2020-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多