diff --git a/Directory.Build.props b/Directory.Build.props
index b4c8f8a4..dfe4d0eb 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -9,7 +9,7 @@
- 3.2.666-preview20220729
+ 3.2.666-preview20220730
diff --git a/FreeSql-mini.sln b/FreeSql-mini.sln
new file mode 100644
index 00000000..75aef9d1
--- /dev/null
+++ b/FreeSql-mini.sln
@@ -0,0 +1,433 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.0.31903.59
+MinimumVisualStudioVersion = 15.0.26124.0
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql", "FreeSql\FreeSql.csproj", "{AF9C50EC-6EB6-494B-9B3B-7EDBA6FD0EBB}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Examples", "Examples", "{94C8A78D-AA15-47B2-A348-530CD86BFC1B}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Providers", "Providers", "{2A381C57-2697-427B-9F10-55DA11FD02E4}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Provider.MySql", "Providers\FreeSql.Provider.MySql\FreeSql.Provider.MySql.csproj", "{28C6A39C-7AE7-4210-B7B0-0970216637A8}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Provider.Oracle", "Providers\FreeSql.Provider.Oracle\FreeSql.Provider.Oracle.csproj", "{3DE45286-B0DB-4D74-B322-F5467FB2EF53}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Provider.Sqlite", "Providers\FreeSql.Provider.Sqlite\FreeSql.Provider.Sqlite.csproj", "{559B6369-1868-4A06-A590-F80BA7B80A1B}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Provider.SqlServer", "Providers\FreeSql.Provider.SqlServer\FreeSql.Provider.SqlServer.csproj", "{B61AAC9E-59E9-4F47-BBE3-97AC24112EFE}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Provider.PostgreSQL", "Providers\FreeSql.Provider.PostgreSQL\FreeSql.Provider.PostgreSQL.csproj", "{22C0B061-F7CC-4A7F-AEC7-D4DBBE6B23B2}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Extensions", "Extensions", "{4A92E8A6-9A6D-41A1-9CDA-DE10899648AA}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Extensions.LazyLoading", "Extensions\FreeSql.Extensions.LazyLoading\FreeSql.Extensions.LazyLoading.csproj", "{1FE00D5E-EC0F-4238-93EC-DABA26DBD1A9}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Provider.MySqlConnector", "Providers\FreeSql.Provider.MySqlConnector\FreeSql.Provider.MySqlConnector.csproj", "{D2A41321-5E84-410B-B25C-3AA122D4CA27}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.DbContext", "FreeSql.DbContext\FreeSql.DbContext.csproj", "{82885C27-23C8-4A6E-92CF-80FE61A041E1}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Repository", "FreeSql.Repository\FreeSql.Repository.csproj", "{3B6887DA-A7E3-410A-B450-587F6B4923F7}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Extensions.BaseEntity", "Extensions\FreeSql.Extensions.BaseEntity\FreeSql.Extensions.BaseEntity.csproj", "{FE0CB06E-493F-4CE8-B2D7-BF48CA8015C6}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Extensions.JsonMap", "Extensions\FreeSql.Extensions.JsonMap\FreeSql.Extensions.JsonMap.csproj", "{3043DEF1-85DF-47AD-8D5D-327270794356}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Provider.Odbc", "Providers\FreeSql.Provider.Odbc\FreeSql.Provider.Odbc.csproj", "{C57444BA-8BF7-4790-A864-7F237123219B}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Generator", "Extensions\FreeSql.Generator\FreeSql.Generator.csproj", "{6A3A4470-7DF7-411B-AAD7-755D7A9DB5A4}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Provider.MsAccess", "Providers\FreeSql.Provider.MsAccess\FreeSql.Provider.MsAccess.csproj", "{B397A761-F646-41CF-A160-AB6C05DAF2FB}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.All", "FreeSql.All\FreeSql.All.csproj", "{933115AD-769C-4FBE-B000-2E8CF2292377}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Extensions.Linq", "Extensions\FreeSql.Extensions.Linq\FreeSql.Extensions.Linq.csproj", "{57B3F5B0-D46A-4442-8EC6-9A9A784404B7}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Provider.Dameng", "Providers\FreeSql.Provider.Dameng\FreeSql.Provider.Dameng.csproj", "{E74D90E8-1CBC-4677-817B-1CA05AB97937}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Provider.ShenTong", "Providers\FreeSql.Provider.ShenTong\FreeSql.Provider.ShenTong.csproj", "{938173AF-157F-4040-AED3-171DA1809CAA}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Provider.SqlServerForSystem", "Providers\FreeSql.Provider.SqlServerForSystem\FreeSql.Provider.SqlServerForSystem.csproj", "{3D2BD8EC-253A-437F-B4C8-74BC0D91429B}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Provider.KingbaseES", "Providers\FreeSql.Provider.KingbaseES\FreeSql.Provider.KingbaseES.csproj", "{CDD6A896-F6DF-44CB-B430-06B383916EB0}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Provider.Firebird", "Providers\FreeSql.Provider.Firebird\FreeSql.Provider.Firebird.csproj", "{101B11D2-7780-4E14-9B72-77F5D69B3DF9}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Provider.Custom", "Providers\FreeSql.Provider.Custom\FreeSql.Provider.Custom.csproj", "{0DBAA21C-39B2-4AAD-A43D-88E67ED239D1}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{226EB372-5786-44ED-A6B7-3B1EAC4CF5B9}"
+ ProjectSection(SolutionItems) = preProject
+ .editorconfig = .editorconfig
+ .gitattributes = .gitattributes
+ .gitignore = .gitignore
+ .github\ISSUE_TEMPLATE\bug-report.md = .github\ISSUE_TEMPLATE\bug-report.md
+ .github\ISSUE_TEMPLATE\config.yml = .github\ISSUE_TEMPLATE\config.yml
+ Directory.Build.props = Directory.Build.props
+ .github\ISSUE_TEMPLATE\feature-request.md = .github\ISSUE_TEMPLATE\feature-request.md
+ LICENSE = LICENSE
+ README.md = README.md
+ README.zh-CN.md = README.zh-CN.md
+ EndProjectSection
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Provider.ClickHouse", "Providers\FreeSql.Provider.ClickHouse\FreeSql.Provider.ClickHouse.csproj", "{86C56235-5D37-4422-807B-B31681C7D01C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Provider.GBase", "Providers\FreeSql.Provider.GBase\FreeSql.Provider.GBase.csproj", "{BDE8EDC6-2646-45E0-A921-39CD1538A8C5}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeSql.Provider.SqliteCore", "Providers\FreeSql.Provider.SqliteCore\FreeSql.Provider.SqliteCore.csproj", "{D4FEE5C1-6805-4B46-B10B-BE5CC942B883}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Any CPU = Release|Any CPU
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {AF9C50EC-6EB6-494B-9B3B-7EDBA6FD0EBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {AF9C50EC-6EB6-494B-9B3B-7EDBA6FD0EBB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {AF9C50EC-6EB6-494B-9B3B-7EDBA6FD0EBB}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {AF9C50EC-6EB6-494B-9B3B-7EDBA6FD0EBB}.Debug|x64.Build.0 = Debug|Any CPU
+ {AF9C50EC-6EB6-494B-9B3B-7EDBA6FD0EBB}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {AF9C50EC-6EB6-494B-9B3B-7EDBA6FD0EBB}.Debug|x86.Build.0 = Debug|Any CPU
+ {AF9C50EC-6EB6-494B-9B3B-7EDBA6FD0EBB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {AF9C50EC-6EB6-494B-9B3B-7EDBA6FD0EBB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {AF9C50EC-6EB6-494B-9B3B-7EDBA6FD0EBB}.Release|x64.ActiveCfg = Release|Any CPU
+ {AF9C50EC-6EB6-494B-9B3B-7EDBA6FD0EBB}.Release|x64.Build.0 = Release|Any CPU
+ {AF9C50EC-6EB6-494B-9B3B-7EDBA6FD0EBB}.Release|x86.ActiveCfg = Release|Any CPU
+ {AF9C50EC-6EB6-494B-9B3B-7EDBA6FD0EBB}.Release|x86.Build.0 = Release|Any CPU
+ {28C6A39C-7AE7-4210-B7B0-0970216637A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {28C6A39C-7AE7-4210-B7B0-0970216637A8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {28C6A39C-7AE7-4210-B7B0-0970216637A8}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {28C6A39C-7AE7-4210-B7B0-0970216637A8}.Debug|x64.Build.0 = Debug|Any CPU
+ {28C6A39C-7AE7-4210-B7B0-0970216637A8}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {28C6A39C-7AE7-4210-B7B0-0970216637A8}.Debug|x86.Build.0 = Debug|Any CPU
+ {28C6A39C-7AE7-4210-B7B0-0970216637A8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {28C6A39C-7AE7-4210-B7B0-0970216637A8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {28C6A39C-7AE7-4210-B7B0-0970216637A8}.Release|x64.ActiveCfg = Release|Any CPU
+ {28C6A39C-7AE7-4210-B7B0-0970216637A8}.Release|x64.Build.0 = Release|Any CPU
+ {28C6A39C-7AE7-4210-B7B0-0970216637A8}.Release|x86.ActiveCfg = Release|Any CPU
+ {28C6A39C-7AE7-4210-B7B0-0970216637A8}.Release|x86.Build.0 = Release|Any CPU
+ {3DE45286-B0DB-4D74-B322-F5467FB2EF53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3DE45286-B0DB-4D74-B322-F5467FB2EF53}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3DE45286-B0DB-4D74-B322-F5467FB2EF53}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {3DE45286-B0DB-4D74-B322-F5467FB2EF53}.Debug|x64.Build.0 = Debug|Any CPU
+ {3DE45286-B0DB-4D74-B322-F5467FB2EF53}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {3DE45286-B0DB-4D74-B322-F5467FB2EF53}.Debug|x86.Build.0 = Debug|Any CPU
+ {3DE45286-B0DB-4D74-B322-F5467FB2EF53}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3DE45286-B0DB-4D74-B322-F5467FB2EF53}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3DE45286-B0DB-4D74-B322-F5467FB2EF53}.Release|x64.ActiveCfg = Release|Any CPU
+ {3DE45286-B0DB-4D74-B322-F5467FB2EF53}.Release|x64.Build.0 = Release|Any CPU
+ {3DE45286-B0DB-4D74-B322-F5467FB2EF53}.Release|x86.ActiveCfg = Release|Any CPU
+ {3DE45286-B0DB-4D74-B322-F5467FB2EF53}.Release|x86.Build.0 = Release|Any CPU
+ {559B6369-1868-4A06-A590-F80BA7B80A1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {559B6369-1868-4A06-A590-F80BA7B80A1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {559B6369-1868-4A06-A590-F80BA7B80A1B}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {559B6369-1868-4A06-A590-F80BA7B80A1B}.Debug|x64.Build.0 = Debug|Any CPU
+ {559B6369-1868-4A06-A590-F80BA7B80A1B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {559B6369-1868-4A06-A590-F80BA7B80A1B}.Debug|x86.Build.0 = Debug|Any CPU
+ {559B6369-1868-4A06-A590-F80BA7B80A1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {559B6369-1868-4A06-A590-F80BA7B80A1B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {559B6369-1868-4A06-A590-F80BA7B80A1B}.Release|x64.ActiveCfg = Release|Any CPU
+ {559B6369-1868-4A06-A590-F80BA7B80A1B}.Release|x64.Build.0 = Release|Any CPU
+ {559B6369-1868-4A06-A590-F80BA7B80A1B}.Release|x86.ActiveCfg = Release|Any CPU
+ {559B6369-1868-4A06-A590-F80BA7B80A1B}.Release|x86.Build.0 = Release|Any CPU
+ {B61AAC9E-59E9-4F47-BBE3-97AC24112EFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B61AAC9E-59E9-4F47-BBE3-97AC24112EFE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B61AAC9E-59E9-4F47-BBE3-97AC24112EFE}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {B61AAC9E-59E9-4F47-BBE3-97AC24112EFE}.Debug|x64.Build.0 = Debug|Any CPU
+ {B61AAC9E-59E9-4F47-BBE3-97AC24112EFE}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {B61AAC9E-59E9-4F47-BBE3-97AC24112EFE}.Debug|x86.Build.0 = Debug|Any CPU
+ {B61AAC9E-59E9-4F47-BBE3-97AC24112EFE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B61AAC9E-59E9-4F47-BBE3-97AC24112EFE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B61AAC9E-59E9-4F47-BBE3-97AC24112EFE}.Release|x64.ActiveCfg = Release|Any CPU
+ {B61AAC9E-59E9-4F47-BBE3-97AC24112EFE}.Release|x64.Build.0 = Release|Any CPU
+ {B61AAC9E-59E9-4F47-BBE3-97AC24112EFE}.Release|x86.ActiveCfg = Release|Any CPU
+ {B61AAC9E-59E9-4F47-BBE3-97AC24112EFE}.Release|x86.Build.0 = Release|Any CPU
+ {22C0B061-F7CC-4A7F-AEC7-D4DBBE6B23B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {22C0B061-F7CC-4A7F-AEC7-D4DBBE6B23B2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {22C0B061-F7CC-4A7F-AEC7-D4DBBE6B23B2}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {22C0B061-F7CC-4A7F-AEC7-D4DBBE6B23B2}.Debug|x64.Build.0 = Debug|Any CPU
+ {22C0B061-F7CC-4A7F-AEC7-D4DBBE6B23B2}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {22C0B061-F7CC-4A7F-AEC7-D4DBBE6B23B2}.Debug|x86.Build.0 = Debug|Any CPU
+ {22C0B061-F7CC-4A7F-AEC7-D4DBBE6B23B2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {22C0B061-F7CC-4A7F-AEC7-D4DBBE6B23B2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {22C0B061-F7CC-4A7F-AEC7-D4DBBE6B23B2}.Release|x64.ActiveCfg = Release|Any CPU
+ {22C0B061-F7CC-4A7F-AEC7-D4DBBE6B23B2}.Release|x64.Build.0 = Release|Any CPU
+ {22C0B061-F7CC-4A7F-AEC7-D4DBBE6B23B2}.Release|x86.ActiveCfg = Release|Any CPU
+ {22C0B061-F7CC-4A7F-AEC7-D4DBBE6B23B2}.Release|x86.Build.0 = Release|Any CPU
+ {1FE00D5E-EC0F-4238-93EC-DABA26DBD1A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1FE00D5E-EC0F-4238-93EC-DABA26DBD1A9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1FE00D5E-EC0F-4238-93EC-DABA26DBD1A9}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {1FE00D5E-EC0F-4238-93EC-DABA26DBD1A9}.Debug|x64.Build.0 = Debug|Any CPU
+ {1FE00D5E-EC0F-4238-93EC-DABA26DBD1A9}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {1FE00D5E-EC0F-4238-93EC-DABA26DBD1A9}.Debug|x86.Build.0 = Debug|Any CPU
+ {1FE00D5E-EC0F-4238-93EC-DABA26DBD1A9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1FE00D5E-EC0F-4238-93EC-DABA26DBD1A9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1FE00D5E-EC0F-4238-93EC-DABA26DBD1A9}.Release|x64.ActiveCfg = Release|Any CPU
+ {1FE00D5E-EC0F-4238-93EC-DABA26DBD1A9}.Release|x64.Build.0 = Release|Any CPU
+ {1FE00D5E-EC0F-4238-93EC-DABA26DBD1A9}.Release|x86.ActiveCfg = Release|Any CPU
+ {1FE00D5E-EC0F-4238-93EC-DABA26DBD1A9}.Release|x86.Build.0 = Release|Any CPU
+ {D2A41321-5E84-410B-B25C-3AA122D4CA27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D2A41321-5E84-410B-B25C-3AA122D4CA27}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D2A41321-5E84-410B-B25C-3AA122D4CA27}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {D2A41321-5E84-410B-B25C-3AA122D4CA27}.Debug|x64.Build.0 = Debug|Any CPU
+ {D2A41321-5E84-410B-B25C-3AA122D4CA27}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {D2A41321-5E84-410B-B25C-3AA122D4CA27}.Debug|x86.Build.0 = Debug|Any CPU
+ {D2A41321-5E84-410B-B25C-3AA122D4CA27}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D2A41321-5E84-410B-B25C-3AA122D4CA27}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D2A41321-5E84-410B-B25C-3AA122D4CA27}.Release|x64.ActiveCfg = Release|Any CPU
+ {D2A41321-5E84-410B-B25C-3AA122D4CA27}.Release|x64.Build.0 = Release|Any CPU
+ {D2A41321-5E84-410B-B25C-3AA122D4CA27}.Release|x86.ActiveCfg = Release|Any CPU
+ {D2A41321-5E84-410B-B25C-3AA122D4CA27}.Release|x86.Build.0 = Release|Any CPU
+ {82885C27-23C8-4A6E-92CF-80FE61A041E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {82885C27-23C8-4A6E-92CF-80FE61A041E1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {82885C27-23C8-4A6E-92CF-80FE61A041E1}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {82885C27-23C8-4A6E-92CF-80FE61A041E1}.Debug|x64.Build.0 = Debug|Any CPU
+ {82885C27-23C8-4A6E-92CF-80FE61A041E1}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {82885C27-23C8-4A6E-92CF-80FE61A041E1}.Debug|x86.Build.0 = Debug|Any CPU
+ {82885C27-23C8-4A6E-92CF-80FE61A041E1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {82885C27-23C8-4A6E-92CF-80FE61A041E1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {82885C27-23C8-4A6E-92CF-80FE61A041E1}.Release|x64.ActiveCfg = Release|Any CPU
+ {82885C27-23C8-4A6E-92CF-80FE61A041E1}.Release|x64.Build.0 = Release|Any CPU
+ {82885C27-23C8-4A6E-92CF-80FE61A041E1}.Release|x86.ActiveCfg = Release|Any CPU
+ {82885C27-23C8-4A6E-92CF-80FE61A041E1}.Release|x86.Build.0 = Release|Any CPU
+ {3B6887DA-A7E3-410A-B450-587F6B4923F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3B6887DA-A7E3-410A-B450-587F6B4923F7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3B6887DA-A7E3-410A-B450-587F6B4923F7}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {3B6887DA-A7E3-410A-B450-587F6B4923F7}.Debug|x64.Build.0 = Debug|Any CPU
+ {3B6887DA-A7E3-410A-B450-587F6B4923F7}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {3B6887DA-A7E3-410A-B450-587F6B4923F7}.Debug|x86.Build.0 = Debug|Any CPU
+ {3B6887DA-A7E3-410A-B450-587F6B4923F7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3B6887DA-A7E3-410A-B450-587F6B4923F7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3B6887DA-A7E3-410A-B450-587F6B4923F7}.Release|x64.ActiveCfg = Release|Any CPU
+ {3B6887DA-A7E3-410A-B450-587F6B4923F7}.Release|x64.Build.0 = Release|Any CPU
+ {3B6887DA-A7E3-410A-B450-587F6B4923F7}.Release|x86.ActiveCfg = Release|Any CPU
+ {3B6887DA-A7E3-410A-B450-587F6B4923F7}.Release|x86.Build.0 = Release|Any CPU
+ {FE0CB06E-493F-4CE8-B2D7-BF48CA8015C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FE0CB06E-493F-4CE8-B2D7-BF48CA8015C6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FE0CB06E-493F-4CE8-B2D7-BF48CA8015C6}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {FE0CB06E-493F-4CE8-B2D7-BF48CA8015C6}.Debug|x64.Build.0 = Debug|Any CPU
+ {FE0CB06E-493F-4CE8-B2D7-BF48CA8015C6}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {FE0CB06E-493F-4CE8-B2D7-BF48CA8015C6}.Debug|x86.Build.0 = Debug|Any CPU
+ {FE0CB06E-493F-4CE8-B2D7-BF48CA8015C6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FE0CB06E-493F-4CE8-B2D7-BF48CA8015C6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FE0CB06E-493F-4CE8-B2D7-BF48CA8015C6}.Release|x64.ActiveCfg = Release|Any CPU
+ {FE0CB06E-493F-4CE8-B2D7-BF48CA8015C6}.Release|x64.Build.0 = Release|Any CPU
+ {FE0CB06E-493F-4CE8-B2D7-BF48CA8015C6}.Release|x86.ActiveCfg = Release|Any CPU
+ {FE0CB06E-493F-4CE8-B2D7-BF48CA8015C6}.Release|x86.Build.0 = Release|Any CPU
+ {3043DEF1-85DF-47AD-8D5D-327270794356}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3043DEF1-85DF-47AD-8D5D-327270794356}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3043DEF1-85DF-47AD-8D5D-327270794356}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {3043DEF1-85DF-47AD-8D5D-327270794356}.Debug|x64.Build.0 = Debug|Any CPU
+ {3043DEF1-85DF-47AD-8D5D-327270794356}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {3043DEF1-85DF-47AD-8D5D-327270794356}.Debug|x86.Build.0 = Debug|Any CPU
+ {3043DEF1-85DF-47AD-8D5D-327270794356}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3043DEF1-85DF-47AD-8D5D-327270794356}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3043DEF1-85DF-47AD-8D5D-327270794356}.Release|x64.ActiveCfg = Release|Any CPU
+ {3043DEF1-85DF-47AD-8D5D-327270794356}.Release|x64.Build.0 = Release|Any CPU
+ {3043DEF1-85DF-47AD-8D5D-327270794356}.Release|x86.ActiveCfg = Release|Any CPU
+ {3043DEF1-85DF-47AD-8D5D-327270794356}.Release|x86.Build.0 = Release|Any CPU
+ {C57444BA-8BF7-4790-A864-7F237123219B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C57444BA-8BF7-4790-A864-7F237123219B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C57444BA-8BF7-4790-A864-7F237123219B}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {C57444BA-8BF7-4790-A864-7F237123219B}.Debug|x64.Build.0 = Debug|Any CPU
+ {C57444BA-8BF7-4790-A864-7F237123219B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {C57444BA-8BF7-4790-A864-7F237123219B}.Debug|x86.Build.0 = Debug|Any CPU
+ {C57444BA-8BF7-4790-A864-7F237123219B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C57444BA-8BF7-4790-A864-7F237123219B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C57444BA-8BF7-4790-A864-7F237123219B}.Release|x64.ActiveCfg = Release|Any CPU
+ {C57444BA-8BF7-4790-A864-7F237123219B}.Release|x64.Build.0 = Release|Any CPU
+ {C57444BA-8BF7-4790-A864-7F237123219B}.Release|x86.ActiveCfg = Release|Any CPU
+ {C57444BA-8BF7-4790-A864-7F237123219B}.Release|x86.Build.0 = Release|Any CPU
+ {6A3A4470-7DF7-411B-AAD7-755D7A9DB5A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6A3A4470-7DF7-411B-AAD7-755D7A9DB5A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6A3A4470-7DF7-411B-AAD7-755D7A9DB5A4}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {6A3A4470-7DF7-411B-AAD7-755D7A9DB5A4}.Debug|x64.Build.0 = Debug|Any CPU
+ {6A3A4470-7DF7-411B-AAD7-755D7A9DB5A4}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {6A3A4470-7DF7-411B-AAD7-755D7A9DB5A4}.Debug|x86.Build.0 = Debug|Any CPU
+ {6A3A4470-7DF7-411B-AAD7-755D7A9DB5A4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6A3A4470-7DF7-411B-AAD7-755D7A9DB5A4}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6A3A4470-7DF7-411B-AAD7-755D7A9DB5A4}.Release|x64.ActiveCfg = Release|Any CPU
+ {6A3A4470-7DF7-411B-AAD7-755D7A9DB5A4}.Release|x64.Build.0 = Release|Any CPU
+ {6A3A4470-7DF7-411B-AAD7-755D7A9DB5A4}.Release|x86.ActiveCfg = Release|Any CPU
+ {6A3A4470-7DF7-411B-AAD7-755D7A9DB5A4}.Release|x86.Build.0 = Release|Any CPU
+ {B397A761-F646-41CF-A160-AB6C05DAF2FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B397A761-F646-41CF-A160-AB6C05DAF2FB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B397A761-F646-41CF-A160-AB6C05DAF2FB}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {B397A761-F646-41CF-A160-AB6C05DAF2FB}.Debug|x64.Build.0 = Debug|Any CPU
+ {B397A761-F646-41CF-A160-AB6C05DAF2FB}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {B397A761-F646-41CF-A160-AB6C05DAF2FB}.Debug|x86.Build.0 = Debug|Any CPU
+ {B397A761-F646-41CF-A160-AB6C05DAF2FB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B397A761-F646-41CF-A160-AB6C05DAF2FB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B397A761-F646-41CF-A160-AB6C05DAF2FB}.Release|x64.ActiveCfg = Release|Any CPU
+ {B397A761-F646-41CF-A160-AB6C05DAF2FB}.Release|x64.Build.0 = Release|Any CPU
+ {B397A761-F646-41CF-A160-AB6C05DAF2FB}.Release|x86.ActiveCfg = Release|Any CPU
+ {B397A761-F646-41CF-A160-AB6C05DAF2FB}.Release|x86.Build.0 = Release|Any CPU
+ {933115AD-769C-4FBE-B000-2E8CF2292377}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {933115AD-769C-4FBE-B000-2E8CF2292377}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {933115AD-769C-4FBE-B000-2E8CF2292377}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {933115AD-769C-4FBE-B000-2E8CF2292377}.Debug|x64.Build.0 = Debug|Any CPU
+ {933115AD-769C-4FBE-B000-2E8CF2292377}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {933115AD-769C-4FBE-B000-2E8CF2292377}.Debug|x86.Build.0 = Debug|Any CPU
+ {933115AD-769C-4FBE-B000-2E8CF2292377}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {933115AD-769C-4FBE-B000-2E8CF2292377}.Release|Any CPU.Build.0 = Release|Any CPU
+ {933115AD-769C-4FBE-B000-2E8CF2292377}.Release|x64.ActiveCfg = Release|Any CPU
+ {933115AD-769C-4FBE-B000-2E8CF2292377}.Release|x64.Build.0 = Release|Any CPU
+ {933115AD-769C-4FBE-B000-2E8CF2292377}.Release|x86.ActiveCfg = Release|Any CPU
+ {933115AD-769C-4FBE-B000-2E8CF2292377}.Release|x86.Build.0 = Release|Any CPU
+ {57B3F5B0-D46A-4442-8EC6-9A9A784404B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {57B3F5B0-D46A-4442-8EC6-9A9A784404B7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {57B3F5B0-D46A-4442-8EC6-9A9A784404B7}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {57B3F5B0-D46A-4442-8EC6-9A9A784404B7}.Debug|x64.Build.0 = Debug|Any CPU
+ {57B3F5B0-D46A-4442-8EC6-9A9A784404B7}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {57B3F5B0-D46A-4442-8EC6-9A9A784404B7}.Debug|x86.Build.0 = Debug|Any CPU
+ {57B3F5B0-D46A-4442-8EC6-9A9A784404B7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {57B3F5B0-D46A-4442-8EC6-9A9A784404B7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {57B3F5B0-D46A-4442-8EC6-9A9A784404B7}.Release|x64.ActiveCfg = Release|Any CPU
+ {57B3F5B0-D46A-4442-8EC6-9A9A784404B7}.Release|x64.Build.0 = Release|Any CPU
+ {57B3F5B0-D46A-4442-8EC6-9A9A784404B7}.Release|x86.ActiveCfg = Release|Any CPU
+ {57B3F5B0-D46A-4442-8EC6-9A9A784404B7}.Release|x86.Build.0 = Release|Any CPU
+ {E74D90E8-1CBC-4677-817B-1CA05AB97937}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E74D90E8-1CBC-4677-817B-1CA05AB97937}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E74D90E8-1CBC-4677-817B-1CA05AB97937}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {E74D90E8-1CBC-4677-817B-1CA05AB97937}.Debug|x64.Build.0 = Debug|Any CPU
+ {E74D90E8-1CBC-4677-817B-1CA05AB97937}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E74D90E8-1CBC-4677-817B-1CA05AB97937}.Debug|x86.Build.0 = Debug|Any CPU
+ {E74D90E8-1CBC-4677-817B-1CA05AB97937}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E74D90E8-1CBC-4677-817B-1CA05AB97937}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E74D90E8-1CBC-4677-817B-1CA05AB97937}.Release|x64.ActiveCfg = Release|Any CPU
+ {E74D90E8-1CBC-4677-817B-1CA05AB97937}.Release|x64.Build.0 = Release|Any CPU
+ {E74D90E8-1CBC-4677-817B-1CA05AB97937}.Release|x86.ActiveCfg = Release|Any CPU
+ {E74D90E8-1CBC-4677-817B-1CA05AB97937}.Release|x86.Build.0 = Release|Any CPU
+ {938173AF-157F-4040-AED3-171DA1809CAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {938173AF-157F-4040-AED3-171DA1809CAA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {938173AF-157F-4040-AED3-171DA1809CAA}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {938173AF-157F-4040-AED3-171DA1809CAA}.Debug|x64.Build.0 = Debug|Any CPU
+ {938173AF-157F-4040-AED3-171DA1809CAA}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {938173AF-157F-4040-AED3-171DA1809CAA}.Debug|x86.Build.0 = Debug|Any CPU
+ {938173AF-157F-4040-AED3-171DA1809CAA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {938173AF-157F-4040-AED3-171DA1809CAA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {938173AF-157F-4040-AED3-171DA1809CAA}.Release|x64.ActiveCfg = Release|Any CPU
+ {938173AF-157F-4040-AED3-171DA1809CAA}.Release|x64.Build.0 = Release|Any CPU
+ {938173AF-157F-4040-AED3-171DA1809CAA}.Release|x86.ActiveCfg = Release|Any CPU
+ {938173AF-157F-4040-AED3-171DA1809CAA}.Release|x86.Build.0 = Release|Any CPU
+ {3D2BD8EC-253A-437F-B4C8-74BC0D91429B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3D2BD8EC-253A-437F-B4C8-74BC0D91429B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3D2BD8EC-253A-437F-B4C8-74BC0D91429B}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {3D2BD8EC-253A-437F-B4C8-74BC0D91429B}.Debug|x64.Build.0 = Debug|Any CPU
+ {3D2BD8EC-253A-437F-B4C8-74BC0D91429B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {3D2BD8EC-253A-437F-B4C8-74BC0D91429B}.Debug|x86.Build.0 = Debug|Any CPU
+ {3D2BD8EC-253A-437F-B4C8-74BC0D91429B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3D2BD8EC-253A-437F-B4C8-74BC0D91429B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3D2BD8EC-253A-437F-B4C8-74BC0D91429B}.Release|x64.ActiveCfg = Release|Any CPU
+ {3D2BD8EC-253A-437F-B4C8-74BC0D91429B}.Release|x64.Build.0 = Release|Any CPU
+ {3D2BD8EC-253A-437F-B4C8-74BC0D91429B}.Release|x86.ActiveCfg = Release|Any CPU
+ {3D2BD8EC-253A-437F-B4C8-74BC0D91429B}.Release|x86.Build.0 = Release|Any CPU
+ {CDD6A896-F6DF-44CB-B430-06B383916EB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CDD6A896-F6DF-44CB-B430-06B383916EB0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CDD6A896-F6DF-44CB-B430-06B383916EB0}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {CDD6A896-F6DF-44CB-B430-06B383916EB0}.Debug|x64.Build.0 = Debug|Any CPU
+ {CDD6A896-F6DF-44CB-B430-06B383916EB0}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {CDD6A896-F6DF-44CB-B430-06B383916EB0}.Debug|x86.Build.0 = Debug|Any CPU
+ {CDD6A896-F6DF-44CB-B430-06B383916EB0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CDD6A896-F6DF-44CB-B430-06B383916EB0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CDD6A896-F6DF-44CB-B430-06B383916EB0}.Release|x64.ActiveCfg = Release|Any CPU
+ {CDD6A896-F6DF-44CB-B430-06B383916EB0}.Release|x64.Build.0 = Release|Any CPU
+ {CDD6A896-F6DF-44CB-B430-06B383916EB0}.Release|x86.ActiveCfg = Release|Any CPU
+ {CDD6A896-F6DF-44CB-B430-06B383916EB0}.Release|x86.Build.0 = Release|Any CPU
+ {101B11D2-7780-4E14-9B72-77F5D69B3DF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {101B11D2-7780-4E14-9B72-77F5D69B3DF9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {101B11D2-7780-4E14-9B72-77F5D69B3DF9}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {101B11D2-7780-4E14-9B72-77F5D69B3DF9}.Debug|x64.Build.0 = Debug|Any CPU
+ {101B11D2-7780-4E14-9B72-77F5D69B3DF9}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {101B11D2-7780-4E14-9B72-77F5D69B3DF9}.Debug|x86.Build.0 = Debug|Any CPU
+ {101B11D2-7780-4E14-9B72-77F5D69B3DF9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {101B11D2-7780-4E14-9B72-77F5D69B3DF9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {101B11D2-7780-4E14-9B72-77F5D69B3DF9}.Release|x64.ActiveCfg = Release|Any CPU
+ {101B11D2-7780-4E14-9B72-77F5D69B3DF9}.Release|x64.Build.0 = Release|Any CPU
+ {101B11D2-7780-4E14-9B72-77F5D69B3DF9}.Release|x86.ActiveCfg = Release|Any CPU
+ {101B11D2-7780-4E14-9B72-77F5D69B3DF9}.Release|x86.Build.0 = Release|Any CPU
+ {0DBAA21C-39B2-4AAD-A43D-88E67ED239D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0DBAA21C-39B2-4AAD-A43D-88E67ED239D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0DBAA21C-39B2-4AAD-A43D-88E67ED239D1}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {0DBAA21C-39B2-4AAD-A43D-88E67ED239D1}.Debug|x64.Build.0 = Debug|Any CPU
+ {0DBAA21C-39B2-4AAD-A43D-88E67ED239D1}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {0DBAA21C-39B2-4AAD-A43D-88E67ED239D1}.Debug|x86.Build.0 = Debug|Any CPU
+ {0DBAA21C-39B2-4AAD-A43D-88E67ED239D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0DBAA21C-39B2-4AAD-A43D-88E67ED239D1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0DBAA21C-39B2-4AAD-A43D-88E67ED239D1}.Release|x64.ActiveCfg = Release|Any CPU
+ {0DBAA21C-39B2-4AAD-A43D-88E67ED239D1}.Release|x64.Build.0 = Release|Any CPU
+ {0DBAA21C-39B2-4AAD-A43D-88E67ED239D1}.Release|x86.ActiveCfg = Release|Any CPU
+ {0DBAA21C-39B2-4AAD-A43D-88E67ED239D1}.Release|x86.Build.0 = Release|Any CPU
+ {86C56235-5D37-4422-807B-B31681C7D01C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {86C56235-5D37-4422-807B-B31681C7D01C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {86C56235-5D37-4422-807B-B31681C7D01C}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {86C56235-5D37-4422-807B-B31681C7D01C}.Debug|x64.Build.0 = Debug|Any CPU
+ {86C56235-5D37-4422-807B-B31681C7D01C}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {86C56235-5D37-4422-807B-B31681C7D01C}.Debug|x86.Build.0 = Debug|Any CPU
+ {86C56235-5D37-4422-807B-B31681C7D01C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {86C56235-5D37-4422-807B-B31681C7D01C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {86C56235-5D37-4422-807B-B31681C7D01C}.Release|x64.ActiveCfg = Release|Any CPU
+ {86C56235-5D37-4422-807B-B31681C7D01C}.Release|x64.Build.0 = Release|Any CPU
+ {86C56235-5D37-4422-807B-B31681C7D01C}.Release|x86.ActiveCfg = Release|Any CPU
+ {86C56235-5D37-4422-807B-B31681C7D01C}.Release|x86.Build.0 = Release|Any CPU
+ {BDE8EDC6-2646-45E0-A921-39CD1538A8C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BDE8EDC6-2646-45E0-A921-39CD1538A8C5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BDE8EDC6-2646-45E0-A921-39CD1538A8C5}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {BDE8EDC6-2646-45E0-A921-39CD1538A8C5}.Debug|x64.Build.0 = Debug|Any CPU
+ {BDE8EDC6-2646-45E0-A921-39CD1538A8C5}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {BDE8EDC6-2646-45E0-A921-39CD1538A8C5}.Debug|x86.Build.0 = Debug|Any CPU
+ {BDE8EDC6-2646-45E0-A921-39CD1538A8C5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BDE8EDC6-2646-45E0-A921-39CD1538A8C5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BDE8EDC6-2646-45E0-A921-39CD1538A8C5}.Release|x64.ActiveCfg = Release|Any CPU
+ {BDE8EDC6-2646-45E0-A921-39CD1538A8C5}.Release|x64.Build.0 = Release|Any CPU
+ {BDE8EDC6-2646-45E0-A921-39CD1538A8C5}.Release|x86.ActiveCfg = Release|Any CPU
+ {BDE8EDC6-2646-45E0-A921-39CD1538A8C5}.Release|x86.Build.0 = Release|Any CPU
+ {D4FEE5C1-6805-4B46-B10B-BE5CC942B883}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D4FEE5C1-6805-4B46-B10B-BE5CC942B883}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D4FEE5C1-6805-4B46-B10B-BE5CC942B883}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {D4FEE5C1-6805-4B46-B10B-BE5CC942B883}.Debug|x64.Build.0 = Debug|Any CPU
+ {D4FEE5C1-6805-4B46-B10B-BE5CC942B883}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {D4FEE5C1-6805-4B46-B10B-BE5CC942B883}.Debug|x86.Build.0 = Debug|Any CPU
+ {D4FEE5C1-6805-4B46-B10B-BE5CC942B883}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D4FEE5C1-6805-4B46-B10B-BE5CC942B883}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D4FEE5C1-6805-4B46-B10B-BE5CC942B883}.Release|x64.ActiveCfg = Release|Any CPU
+ {D4FEE5C1-6805-4B46-B10B-BE5CC942B883}.Release|x64.Build.0 = Release|Any CPU
+ {D4FEE5C1-6805-4B46-B10B-BE5CC942B883}.Release|x86.ActiveCfg = Release|Any CPU
+ {D4FEE5C1-6805-4B46-B10B-BE5CC942B883}.Release|x86.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {28C6A39C-7AE7-4210-B7B0-0970216637A8} = {2A381C57-2697-427B-9F10-55DA11FD02E4}
+ {3DE45286-B0DB-4D74-B322-F5467FB2EF53} = {2A381C57-2697-427B-9F10-55DA11FD02E4}
+ {559B6369-1868-4A06-A590-F80BA7B80A1B} = {2A381C57-2697-427B-9F10-55DA11FD02E4}
+ {B61AAC9E-59E9-4F47-BBE3-97AC24112EFE} = {2A381C57-2697-427B-9F10-55DA11FD02E4}
+ {22C0B061-F7CC-4A7F-AEC7-D4DBBE6B23B2} = {2A381C57-2697-427B-9F10-55DA11FD02E4}
+ {1FE00D5E-EC0F-4238-93EC-DABA26DBD1A9} = {4A92E8A6-9A6D-41A1-9CDA-DE10899648AA}
+ {D2A41321-5E84-410B-B25C-3AA122D4CA27} = {2A381C57-2697-427B-9F10-55DA11FD02E4}
+ {FE0CB06E-493F-4CE8-B2D7-BF48CA8015C6} = {4A92E8A6-9A6D-41A1-9CDA-DE10899648AA}
+ {3043DEF1-85DF-47AD-8D5D-327270794356} = {4A92E8A6-9A6D-41A1-9CDA-DE10899648AA}
+ {C57444BA-8BF7-4790-A864-7F237123219B} = {2A381C57-2697-427B-9F10-55DA11FD02E4}
+ {6A3A4470-7DF7-411B-AAD7-755D7A9DB5A4} = {4A92E8A6-9A6D-41A1-9CDA-DE10899648AA}
+ {B397A761-F646-41CF-A160-AB6C05DAF2FB} = {2A381C57-2697-427B-9F10-55DA11FD02E4}
+ {57B3F5B0-D46A-4442-8EC6-9A9A784404B7} = {4A92E8A6-9A6D-41A1-9CDA-DE10899648AA}
+ {E74D90E8-1CBC-4677-817B-1CA05AB97937} = {2A381C57-2697-427B-9F10-55DA11FD02E4}
+ {938173AF-157F-4040-AED3-171DA1809CAA} = {2A381C57-2697-427B-9F10-55DA11FD02E4}
+ {3D2BD8EC-253A-437F-B4C8-74BC0D91429B} = {2A381C57-2697-427B-9F10-55DA11FD02E4}
+ {CDD6A896-F6DF-44CB-B430-06B383916EB0} = {2A381C57-2697-427B-9F10-55DA11FD02E4}
+ {101B11D2-7780-4E14-9B72-77F5D69B3DF9} = {2A381C57-2697-427B-9F10-55DA11FD02E4}
+ {0DBAA21C-39B2-4AAD-A43D-88E67ED239D1} = {2A381C57-2697-427B-9F10-55DA11FD02E4}
+ {86C56235-5D37-4422-807B-B31681C7D01C} = {2A381C57-2697-427B-9F10-55DA11FD02E4}
+ {BDE8EDC6-2646-45E0-A921-39CD1538A8C5} = {2A381C57-2697-427B-9F10-55DA11FD02E4}
+ {D4FEE5C1-6805-4B46-B10B-BE5CC942B883} = {2A381C57-2697-427B-9F10-55DA11FD02E4}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {089687FA-5D21-40AC-BA8A-AA0D1E1H7F98}
+ RESX_PrefixTranslations = True
+ RESX_NeutralResourcesLanguage = en-US
+ EndGlobalSection
+EndGlobal
diff --git a/FreeSql/Internal/CommonProvider/DeleteProvider.cs b/FreeSql/Internal/CommonProvider/DeleteProvider.cs
index 1f5a27df..38cef112 100644
--- a/FreeSql/Internal/CommonProvider/DeleteProvider.cs
+++ b/FreeSql/Internal/CommonProvider/DeleteProvider.cs
@@ -66,7 +66,7 @@ namespace FreeSql.Internal.CommonProvider
return this;
}
- public int ExecuteAffrows()
+ public virtual int ExecuteAffrows()
{
var affrows = 0;
DbParameter[] dbParms = null;
diff --git a/FreeSql/Internal/CommonProvider/DeleteProviderAsync.cs b/FreeSql/Internal/CommonProvider/DeleteProviderAsync.cs
index d2115b5f..e94b2ece 100644
--- a/FreeSql/Internal/CommonProvider/DeleteProviderAsync.cs
+++ b/FreeSql/Internal/CommonProvider/DeleteProviderAsync.cs
@@ -14,7 +14,7 @@ namespace FreeSql.Internal.CommonProvider
{
#if net40
#else
- async public Task ExecuteAffrowsAsync(CancellationToken cancellationToken = default)
+ async public virtual Task ExecuteAffrowsAsync(CancellationToken cancellationToken = default)
{
var affrows = 0;
DbParameter[] dbParms = null;
diff --git a/Providers/FreeSql.Provider.ClickHouse/Curd/ClickHouseDelete.cs b/Providers/FreeSql.Provider.ClickHouse/Curd/ClickHouseDelete.cs
index 28211a80..933253c5 100644
--- a/Providers/FreeSql.Provider.ClickHouse/Curd/ClickHouseDelete.cs
+++ b/Providers/FreeSql.Provider.ClickHouse/Curd/ClickHouseDelete.cs
@@ -2,6 +2,7 @@
using System;
using System.Collections.Generic;
using System.Data;
+using System.Data.Common;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
@@ -20,12 +21,76 @@ namespace FreeSql.ClickHouse.Curd
public override string ToSql()
{
- return base.ToSql()?.Replace("DELETE FROM ", "ALTER TABLE ").Replace(" WHERE ", " DELETE WHERE ");
+ return ReplaceDeleteSql(base.ToSql());
+ }
+
+ string ReplaceDeleteSql(string sql) => sql?.Replace("DELETE FROM ", "ALTER TABLE ").Replace(" WHERE ", " DELETE WHERE ");
+
+ public override int ExecuteAffrows()
+ {
+ var affrows = 0;
+ DbParameter[] dbParms = null;
+ ToSqlFetch(sb =>
+ {
+ if (dbParms == null) dbParms = _params.ToArray();
+ var sql = ReplaceDeleteSql(sb.ToString());
+ var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Delete, sql, dbParms);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
+
+ Exception exception = null;
+ try
+ {
+ affrows += _orm.Ado.ExecuteNonQuery(_connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms);
+ }
+ catch (Exception ex)
+ {
+ exception = ex;
+ throw;
+ }
+ finally
+ {
+ var after = new Aop.CurdAfterEventArgs(before, exception, affrows);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
+ }
+ });
+ if (dbParms != null) this.ClearData();
+ return affrows;
}
#if net40
#else
public override Task> ExecuteDeletedAsync(CancellationToken cancellationToken = default) => throw new NotImplementedException($"FreeSql.Provider.ClickHouse {CoreStrings.S_Not_Implemented_Feature}");
+
+ async public override Task ExecuteAffrowsAsync(CancellationToken cancellationToken = default)
+ {
+ var affrows = 0;
+ DbParameter[] dbParms = null;
+ await ToSqlFetchAsync(async sb =>
+ {
+ if (dbParms == null) dbParms = _params.ToArray();
+ var sql = ReplaceDeleteSql(sb.ToString());
+ var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Delete, sql, dbParms);
+ _orm.Aop.CurdBeforeHandler?.Invoke(this, before);
+
+ Exception exception = null;
+ try
+ {
+ affrows += await _orm.Ado.ExecuteNonQueryAsync(_connection, _transaction, CommandType.Text, sql, _commandTimeout, dbParms, cancellationToken);
+ }
+ catch (Exception ex)
+ {
+ exception = ex;
+ throw;
+ }
+ finally
+ {
+ var after = new Aop.CurdAfterEventArgs(before, exception, affrows);
+ _orm.Aop.CurdAfterHandler?.Invoke(this, after);
+ }
+ });
+ if (dbParms != null) this.ClearData();
+ return affrows;
+ }
#endif
}
}