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(); }