gpt4 book ai didi

c# - 来自单个查询的 Dapper 多个结果

转载 作者:行者123 更新时间:2023-11-30 13:39:38 25 4
gpt4 key购买 nike

您好,我正在努力了解 Dapper。

我的情况是我想将查询中的两个值提取到两个单独的字符串中。我不确定我是否以正确的方式解决这个问题,但这就是我正在做的:

string sql = @"Select type, name 
FROM ZipData
WHERE Zip = @zip";

using (var multi = conn.QueryMultiple(sql, new { zip = zip }))
{
string result = multi.Read<string>().SingleOrDefault();
}

而且我无法访问已处置的对象。对象名称:'GridReader'。当试图读取第二个字符串时。事情是它正确地获得了第一个值并且在我试图获得的阅读器中有两个字段。我确定我在滥用 API。

我在这里做错了什么?我用谷歌搜索但可以找到一个具体的例子。

最佳答案

您误用了 QueryMultiple。这是为返回多个 结果集的复合 SQL 语句定义的。像这样的东西:

SELECT Foo FROM MyTable;
SELECT Bar FROM MyOtherTable;

另一方面,您正试图从一个单个结果集中获取两个不同的,因此您应该只使用普通的查询 方法:

var result = conn.Query(sql, new { zip = zip }).Single();
var type = result.type;
var name = result.name;

Query 返回一个可枚举的(因为通常一个查询可以返回多行)。然而,您似乎只需要一行,因此我们在末尾调用 .Single 来获取该行。从那里,返回类型是 dynamic 因此您可以简单地引用 SELECT 语句中的列隐含的属性:type姓名

关于c# - 来自单个查询的 Dapper 多个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11163268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com