From ded288333356e05aebfbdb878efc8d40ca869ab2 Mon Sep 17 00:00:00 2001 From: John Sun Date: Thu, 22 Apr 2021 11:32:49 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20pgsql=20=E4=B8=AD=20hs?= =?UTF-8?q?tore=20=E4=B8=AD=20value=20=E9=94=99=E8=AF=AF=E8=B5=8B=E5=80=BC?= =?UTF-8?q?=E4=B8=BA=20key=20=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=8C=E5=B9=B6?= =?UTF-8?q?=E5=85=81=E8=AE=B8=20value=20=E5=80=BC=E4=B8=BA=20NULL=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 6 ++++- .../PostgreSQLAdo/PostgreSQLAdo.cs | 23 ++++++++++++++----- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 0230a2ae..f20f6a44 100644 --- a/.gitignore +++ b/.gitignore @@ -244,4 +244,8 @@ ModelManifest.xml .paket/paket.exe # FAKE - F# Make -.fake/ \ No newline at end of file +.fake/ + +# JetBrains Rider +.idea/ +*.sln.iml \ No newline at end of file diff --git a/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLAdo/PostgreSQLAdo.cs b/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLAdo/PostgreSQLAdo.cs index 931ad21a..5bf8f97e 100644 --- a/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLAdo/PostgreSQLAdo.cs +++ b/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLAdo/PostgreSQLAdo.cs @@ -7,6 +7,7 @@ using System; using System.Collections; using System.Collections.Generic; using System.Data.Common; +using System.Linq; using System.Text; using System.Threading; @@ -65,12 +66,22 @@ namespace FreeSql.PostgreSQL { var pgdics = isdic ? param as Dictionary : param as IEnumerable>; - if (pgdics == null) return string.Concat("''::hstore"); - var pghstore = new StringBuilder(); - pghstore.Append("'"); - foreach (var dic in pgdics) - pghstore.Append("\"").Append(dic.Key.Replace("'", "''")).Append("\"=>") - .Append(dic.Key.Replace("'", "''")).Append(","); + + var pghstore = new StringBuilder("'"); + var pairs = pgdics.ToArray(); + + for (var i = 0; i < pairs.Length; i++) + { + if (i != 0) pghstore.Append(","); + + pghstore.AppendFormat("\"{0}\"=>", pairs[i].Key.Replace("'", "''")); + + if (pairs[i].Value == null) + pghstore.Append("NULL"); + else + pghstore.AppendFormat("\"{0}\"", pairs[i].Value.Replace("'", "''")); + } + return pghstore.Append("'::hstore"); } else if (param is IEnumerable) From 4d82e18993338b1243d7cd1d588ab2ccbe61ce2c Mon Sep 17 00:00:00 2001 From: IGeekFan Date: Thu, 22 Apr 2021 12:21:09 +0800 Subject: [PATCH 2/2] Update docfx.yml --- .github/workflows/docfx.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docfx.yml b/.github/workflows/docfx.yml index 8cca960d..9ecb6663 100644 --- a/.github/workflows/docfx.yml +++ b/.github/workflows/docfx.yml @@ -40,7 +40,7 @@ jobs: - name: Remove FreeSql.Tests run: dotnet sln FreeSql.sln remove (ls -r FreeSql.Tests/**/*.csproj) - name: Install dependencies - run: dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org --configfile $env:APPDATA\NuGet\NuGet.Config && dotnet restore + run: dotnet restore - name: Setup DocFX uses: crazy-max/ghaction-chocolatey@v1 with: