NET EF sql 参数化查询

导入命名空间

using System.Data.SqlClient;

代码

var sqlBuilder = new StringBuilder("SELECT SUM(TOTAL) AS TOTAL FROM (");
sqlBuilder.Append(" SELECT COUNT(1) AS TOTAL FROM TABLE_A WHERE Code = @originCode UNION ALL");
sqlBuilder.Append(" SELECT COUNT(1) AS TOTAL FROM TABLE_C WHERE Code = @originCode");
sqlBuilder.Append(" ) V");
SqlParameter[] parameters = {
    new SqlParameter("@originCode", originCode ?? string.Empty),
};
var total = db.Database.SqlQuery<int>(sqlBuilder.ToString(), parameters).FirstOrDefault();

PS:

参数需要进行非空判断,把 null 替换为 string.Empty,否则会异常

System.Data.SqlClient.SqlException:“The parameterized query '(@originCode nvarchar(4000))SELECT SUM(TOTAL) AS TOTAL FROM ( SE' expects the parameter '@originCode', which was not supplied.”

 

posted @   Robot-Blog  阅读(51)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
历史上的今天:
2021-11-08 NetCore EFCore DbFirst 连接 MsSql
点击右上角即可分享
微信分享提示