从数据库查询填充 class 对象的更好方法?

A better way to populate a class object from a database query?

目前我正在使用 SqlCommands 来 运行 存储过程,我将 ExecuteReader 和 运行 读一段时间,将每个字段分配给一个对象,然后将该对象添加到列表中。到目前为止,当存储过程 return 几个字段时,这工作正常,但现在我需要 return 20 多个字段的完整数据库行。有更好的方法吗?

这是我当前如何使用 SqlCommand 对象并填充 class.

的示例
private IEnumerable<DigitalQueue> GetUncheckedQueues()
    {
        var cmd = new SqlCommand
        {
            CommandTimeout = 30,
            CommandText = "sp_StoredProcedureName",
            Connection = Main.Con,
            CommandType = CommandType.StoredProcedure
        };

        var sdrQueues = cmd.ExecuteReader();
        var uncheckedQueues = new List<DigitalQueue>();
        while (sdrQueues.Read())
        {
            var workingQueue = new DigitalQueue
            {
                queueId = sdrQueues.GetValue(0).ToString(),
                queueStatus = sdrQueues.GetValue(1).ToString()
            };
            if (!sdrQueues.IsDBNull(2))
            {
                workingQueue.queueDate = sdrQueues.GetDateTime(2);
            }
            uncheckedQueues.Add(workingQueue);
        }
        return uncheckedQueues;
    }

开始使用 Dapper,它是最好的 micro-orm 类型,可以帮助您以最有效的方式将查询映射到对象。

Getting Started with Dapper Dapper Tutorials

示例代码

var uncheckedQueues = connection.Query<DigitalQueue>("sp_StoredProcedureName", commandType: CommandType.StoredProcedure).ToList();