如何使用Dapper获取SQLite查询结果的List<string>或Dictionary
使用Dapper获取SQLite查询结果为List或Dictionary<string, object>
获取属性与对应值的Dictionary<string, object>
Dapper可直接将单条查询结果映射为IDictionary<string, object>,键对应数据库列名,值为字段内容:
using Dapper; using System.Data.SQLite; using System.Collections.Generic; // 初始化SQLite连接 using var connection = new SQLiteConnection("你的SQLite连接字符串"); connection.Open(); // 执行查询并获取字典 var productDict = connection.QueryFirst<IDictionary<string, object>>( "SELECT * FROM tblProducts WHERE Id = 1" );
如果不确定查询是否返回结果,建议用QueryFirstOrDefault避免无结果异常:
var productDict = connection.QueryFirstOrDefault<IDictionary<string, object>>( "SELECT * FROM tblProducts WHERE Id = 1" ); if (productDict != null) { // 处理字典数据 }
获取所有值的List
基于上述字典结果,提取所有值并转换为字符串列表即可:
// 从字典中提取值并转为string列表 var valueList = productDict.Values.Select(v => v?.ToString()).ToList();
也可以合并为一步操作:
var valueList = connection.QueryFirstOrDefault<IDictionary<string, object>>( "SELECT * FROM tblProducts WHERE Id = 1" )?.Values.Select(v => v?.ToString()).ToList();
注意事项
- 用
v?.ToString()处理可能的null值,避免空引用异常 - 确保已安装NuGet包
Dapper和System.Data.SQLite.Core
内容的提问来源于stack exchange,提问作者itsalikis
相关产品推荐
相关产品推荐

