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

C# 从数据库查询填充类对象的更好方法?,c#,sqldatareader,sqlcommand,C#,Sqldatareader,Sqlcommand,目前我正在使用SqlCommands运行存储过程,我将ExecuteReader并运行一段时间。read,将每个字段分配给一个对象,然后将该对象添加到列表中。到目前为止,当存储过程返回几个字段时,这种方法工作得很好,但现在我需要返回一个包含20多个字段的完整数据库行。我有没有更好的办法 下面是我当前如何使用SqlCommand对象和填充类的示例 private IEnumerable<DigitalQueue> GetUncheckedQueues() { v

目前我正在使用SqlCommands运行存储过程,我将ExecuteReader并运行一段时间。read,将每个字段分配给一个对象,然后将该对象添加到列表中。到目前为止,当存储过程返回几个字段时,这种方法工作得很好,但现在我需要返回一个包含20多个字段的完整数据库行。我有没有更好的办法

下面是我当前如何使用SqlCommand对象和填充类的示例

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;
    }
private IEnumerable GetUncheckedQueues()
{
var cmd=new SqlCommand
{
CommandTimeout=30,
CommandText=“sp_StoredProcedureName”,
连接=Main.Con,
CommandType=CommandType.StoredProcess
};
var sdrQueues=cmd.ExecuteReader();
var uncheckedQueues=new List();
while(sdrQueues.Read())
{
var workingQueue=新的数字队列
{
queueId=sdrQueues.GetValue(0).ToString(),
queueStatus=sdrQueues.GetValue(1).ToString()
};
如果(!sdrQueues.IsDBNull(2))
{
workingQueue.queueDate=sdrQueues.GetDateTime(2);
}
未选中队列。添加(工作队列);
}
返回未选中的队列;
}

开始使用
Dapper
,它是帮助您以最有效的方式将查询映射到对象的最佳微型orm

示例代码

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

我建议您研究实体框架之类的框架。或者,如果可能的话,返回json,然后反序列化对象……您正在寻找的对象称为。感谢您的建议,我们将研究它,并让您知道我是否能够让它正常工作。