C# Dapper-提取已存储在局部变量中的单个值

C# Dapper-提取已存储在局部变量中的单个值,c#,dapper,C#,Dapper,我正在将Dapper与存储过程一起使用 public List<Sifrarnik> ChangeOpisText(string opis) { using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["Cloud"].ConnectionString)) { if (db.Sta

我正在将Dapper与存储过程一起使用

public List<Sifrarnik> ChangeOpisText(string opis)
        {
            using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["Cloud"].ConnectionString))
            {
                if (db.State == ConnectionState.Closed)
                {
                    db.Open();
                }

                var response = db.Query<Sifrarnik>("dbo.spChangeOpisText @opis",
                    new
                    {
                        opis = opis

                    }).ToList();
                return response;
            }
        }

当我从用于Dapper的数据模型中检查prints列表中变量的类型时

如果您计划检索一行,为什么要返回列表?只需返回一个
Sifrarnik
的实例

您可以使用从返回的枚举中获取实例

public Sifrarnik ChangeOpisText(字符串opis)
{
使用(IDbConnection db=new SqlConnection(ConfigurationManager.ConnectionString[“Cloud”].ConnectionString))
{
if(db.State==ConnectionState.Closed)
{
db.Open();
}
var response=db.Query
(
“dbo.spChangeOpisText@opis”,
新的
{
opis=opis
}
)
.Single();
返回响应;
}
}

我得到的
无法隐式地将类型“erp.Sifrarnik”转换为“System.Collections.Generic.List
。在我的代码示例中没有
列表
。所以它一定是你的代码里的东西。您是否试图将
ChangeOpisText()
的结果存储在列表中?我有一个名为Sifrarnik的类,它映射数据库中的一个表。根据我从文档中读到的关于Dapper的内容。。Dapper将响应映射到一个类,这是一个如下列表:
namespace erp{public class Sifrarnik{public int id{get;set;}public string prefiks{get;set;}public string opis{get;set;}}}
您没有回答我的问题。我的代码在任何地方都不包含
System.Collections.Generic.List的声明,因此它必须是您的。要使用单个实例还是列表?因此,这里的问题是,您不知道如何从列表中的单个对象实例中读取属性?这就总结了吗?仅供参考,您不需要检查并调用
状态来打开连接。Dapper的
Query
方法可以帮你做到这一点。
comboBox1.DataSource = response;
comboBox1.DisplayMember = "column-name";
comboBox1.ValueMember = "column-name";
public Sifrarnik ChangeOpisText(string opis)
{
    using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["Cloud"].ConnectionString))
    {
        if (db.State == ConnectionState.Closed)
        {
            db.Open();
        }

        var response = db.Query<Sifrarnik>
        (
            "dbo.spChangeOpisText @opis",
            new
            {
                opis = opis
            }
        )
        .Single();
        return response;
    }
}