Dapper的数据库操作备忘

Dapper是很好的C#生态的ORM工具

  • 获取单条记录
sql 复制代码
var row = conn.QueryFirstOrDefault("select 'abc' as cc");
if (row == null) return;
string priField = row.cc; //直接访问字段

根据动态的字段名获取值,则需要先转为字典接口

csharp 复制代码
var dict = (IDictionary<string, object>)row;
// 动态访问字段
object _f = dict[appField];
  • 执行存储过程
    下面是直接执行postgresql的自定义函数,
csharp 复制代码
string sql = "SELECT public.template.fn_flow_test_ok(@p_bill_id, @p_args)";
// 参数对象,属性名与 SQL 中的参数名匹配
var parameters = new { p_bill_id = bill.Bill_Id, p_args = bill.Parameters };
db.Connection.Query(sql, parameters, trx);
sql 复制代码
CREATE OR REPLACE FUNCTION public.fn_flow_test_ok(p_bill_id varchar,p_args varchar)
	RETURNS void
	LANGUAGE plpgsql
AS $function$
	BEGIN
		perform debug_log('flow ok,'||p_bill_id||','||p_args);
	END;
$function$
;
相关推荐
椰猫子7 小时前
SpringMVC(SpringMVC简介、请求与响应(请求映射路径、请求参数、日期类型参数传递、响应json数据))
java·前端·数据库
2401_882273727 小时前
pattern属性在旧版Android浏览器无效怎么办_手动验证补充【操作】
jvm·数据库·python
小的~~7 小时前
Milvus会存在SQL注入攻击吗?
数据库·sql·milvus
uElY ITER8 小时前
MySQL官网驱动下载(jar包驱动和ODBC驱动)【详细教程】
数据库·mysql
NCIN EXPE8 小时前
MySQL--》理解锁机制中的并发控制与优化策略
数据库·mysql·oracle
AI进化营-智能译站8 小时前
ROS2 C++开发系列11-VS Code一键生成Doxygen注释|让ROS2节点文档自动跟上代码迭代
java·数据库·c++·ai
村头的猫8 小时前
JWT 令牌的工作原理,结构和签名验证
前端·数据库·经验分享·微服务
许彰午8 小时前
CacheSQL(四):CacheSQLClient——用一张路由表实现水平扩展
java·数据库·缓存·系统架构·政务
Lyyaoo.8 小时前
缓存穿透/雪崩/击穿
数据库·缓存·oracle
许彰午8 小时前
CacheSQL(三):双 HTTP 引擎与 SQL 查询——接口抽象的价值
java·数据库·sql·缓存