From 57d7a719326110945c412ab6da36b86d988dbeb5 Mon Sep 17 00:00:00 2001 From: falcon <9504402@qq.com> Date: Fri, 28 May 2021 15:37:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=95=E5=85=A5Falcon.StoredProcedureRunner?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E5=8C=85=E5=9C=A8=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E6=89=A7=E8=A1=8C=E5=8E=9F=E5=A7=8Bsql=E8=AF=AD=E5=8F=A5?= =?UTF-8?q?=E5=B9=B6=E8=8E=B7=E5=8F=96json=E6=A0=BC=E5=BC=8F=E7=BB=93?= =?UTF-8?q?=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/api/ReportApiController.cs | 7 ++- ReportService/Database/RSDbContext.cs | 51 +------------------ ReportService/ReportService.csproj | 18 ++++--- ReportService/Startup.cs | 3 ++ 4 files changed, 20 insertions(+), 59 deletions(-) diff --git a/ReportService/Controllers/api/ReportApiController.cs b/ReportService/Controllers/api/ReportApiController.cs index 348c1d3..1caa90b 100644 --- a/ReportService/Controllers/api/ReportApiController.cs +++ b/ReportService/Controllers/api/ReportApiController.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.IO; +using Falcon.StoredProcedureRunner; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore.Internal; @@ -17,6 +18,7 @@ namespace ReportService.Controllers.api public IWebHostEnvironment Env { get; private set; } public RSDbContext Db { get; set; } public ILogger Logger { get; set; } + public IRunner DbRunner { get; set; } /// /// 报表存放位置 @@ -27,10 +29,11 @@ namespace ReportService.Controllers.api } } - public ReportApiController(ILogger logger,IWebHostEnvironment env,RSDbContext db) { + public ReportApiController(ILogger logger,IWebHostEnvironment env,RSDbContext db,IRunner r) { this.Logger = logger; this.Env = env; this.Db = db; + this.DbRunner = r; } /// @@ -120,7 +123,7 @@ namespace ReportService.Controllers.api /// 要执行的sql语句 /// json对象 public object GetResult(string sql) { - var result = this.Db.SqlJsonQuery(sql); + var result = this.DbRunner.RunRaw(this.Db,sql); this.Logger.LogInformation($"GetResult:\n{sql}\n{result}"); return Content(result,"application/json; charset=utf-8"); } diff --git a/ReportService/Database/RSDbContext.cs b/ReportService/Database/RSDbContext.cs index 182df9e..61c49c3 100644 --- a/ReportService/Database/RSDbContext.cs +++ b/ReportService/Database/RSDbContext.cs @@ -1,11 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Data.Common; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore; namespace ReportService.Database { @@ -18,46 +11,4 @@ namespace ReportService.Database } } - - public static class RSDbContextExend - { - /// - /// 执行sql查询,返回json格式数据集 - /// - /// 执行sql语句的数据库上下文 - /// 要执行的sql语句 - /// Json格式sql语句执行结果 - public static string SqlJsonQuery(this DbContext db,string sql) => db.Database.SqlJsonQuery(sql); - - /// - /// 执行sql查询,返回json格式数据集 - /// - /// 执行sql语句的数据库上下文 - /// 要执行的sql语句 - /// Json格式sql语句执行结果 - public static string SqlJsonQuery(this DatabaseFacade db,string sql) { - var connection = db.GetDbConnection(); - using(var cmd = connection.CreateCommand()) { - cmd.CommandText = sql; - cmd.CommandType = System.Data.CommandType.Text; - connection.Open(); - var dr = cmd.ExecuteReader(); - var result = new StringBuilder(); - if(!dr.CanGetColumnSchema()) - return ""; - while(dr.Read()) { - var item = new StringBuilder(); - var columnSchema = dr.GetColumnSchema(); - for(var i = 0;i < columnSchema.Count;i++) { - var name = dr.GetName(i); - var value = dr.IsDBNull(i) ? null : dr.GetValue(i); - item.Append($"\"{name}\":\"{value}\","); - } - result.Append($"{{{item.ToString().TrimEnd(',')}}},"); - } - connection.Close(); - return "[" + result.ToString().TrimEnd(',') + "]"; - } - } - } } diff --git a/ReportService/ReportService.csproj b/ReportService/ReportService.csproj index 1642b49..01c15a8 100644 --- a/ReportService/ReportService.csproj +++ b/ReportService/ReportService.csproj @@ -1,14 +1,16 @@ - - + net5 bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml + 40 + D:\Applications\ReportService\Backup\ + 2.0 + 1.0.0 + 5be4fd95-6f72-4658-a0a9-e46921749643 - - @@ -16,7 +18,6 @@ - @@ -25,11 +26,14 @@ + - Never - + + + + \ No newline at end of file diff --git a/ReportService/Startup.cs b/ReportService/Startup.cs index 13f28c0..4b19706 100644 --- a/ReportService/Startup.cs +++ b/ReportService/Startup.cs @@ -1,4 +1,5 @@ using System; +using Falcon.StoredProcedureRunner; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.EntityFrameworkCore; @@ -24,6 +25,8 @@ namespace ReportService services.AddDbContext(b => { b.UseSqlServer(connStr); }); + //洢ִ + services.AddFalconSPRunner(); services.AddControllersWithViews(); }