From e63eb42da6ad6b57ff7bbae4b9c2127604fabefa Mon Sep 17 00:00:00 2001 From: 28810 <28810@YEXIANGQIN> Date: Thu, 9 May 2019 11:42:01 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E5=88=A0=E9=99=A4=20MySql=20CodeFirst=20?= =?UTF-8?q?=E5=AF=B9=E8=A1=A8=E5=AD=97=E7=AC=A6=E9=9B=86=E7=9A=84=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql.Tests/MySql/MySqlCodeFirstTest.cs | 14 +++++++------- FreeSql.Tests/Oracle/OracleCodeFirstTest.cs | 2 +- FreeSql/MySql/MySqlCodeFirst.cs | 6 +++--- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/FreeSql.Tests/MySql/MySqlCodeFirstTest.cs b/FreeSql.Tests/MySql/MySqlCodeFirstTest.cs index 90673eca..8f2caee6 100644 --- a/FreeSql.Tests/MySql/MySqlCodeFirstTest.cs +++ b/FreeSql.Tests/MySql/MySqlCodeFirstTest.cs @@ -11,21 +11,21 @@ namespace FreeSql.Tests.MySql { [Fact] public void 中文表_字段() { - var sql = g.mysql.CodeFirst.GetComparisonDDLStatements<测试中文表>(); - g.mysql.CodeFirst.SyncStructure<测试中文表>(); + var sql = g.mysql.CodeFirst.GetComparisonDDLStatements<测试中文表2>(); + g.mysql.CodeFirst.SyncStructure<测试中文表2>(); - var item = new 测试中文表 { + var item = new 测试中文表2 { 标题 = "测试标题", 创建时间 = DateTime.Now }; - Assert.Equal(1, g.mysql.Insert<测试中文表>().AppendData(item).ExecuteAffrows()); + Assert.Equal(1, g.mysql.Insert<测试中文表2>().AppendData(item).ExecuteAffrows()); Assert.NotEqual(Guid.Empty, item.编号); - var item2 = g.mysql.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + var item2 = g.mysql.Select<测试中文表2>().Where(a => a.编号 == item.编号).First(); Assert.NotNull(item2); Assert.Equal(item.编号, item2.编号); Assert.Equal(item.标题, item2.标题); } - class 测试中文表 { + class 测试中文表2 { [Column(IsPrimary = true)] public Guid 编号 { get; set; } @@ -124,7 +124,7 @@ namespace FreeSql.Tests.MySql { `testFieldEnum2` SET('F1','F2','F3') NOT NULL, `testFieldEnum2Nullable` SET('F1','F2','F3'), PRIMARY KEY (`Id`) -) Engine=InnoDB CHARACTER SET utf8; +) Engine=InnoDB; ", sql); } diff --git a/FreeSql.Tests/Oracle/OracleCodeFirstTest.cs b/FreeSql.Tests/Oracle/OracleCodeFirstTest.cs index 5bf2a0d3..32b94b6f 100644 --- a/FreeSql.Tests/Oracle/OracleCodeFirstTest.cs +++ b/FreeSql.Tests/Oracle/OracleCodeFirstTest.cs @@ -125,7 +125,7 @@ namespace FreeSql.Tests.Oracle { `Enum2` SET('F1','F2','F3') NOT NULL, `Enum2Nullable` SET('F1','F2','F3'), PRIMARY KEY (`Id`) -) Engine=InnoDB CHARACTER SET utf8; +) Engine=InnoDB; ", sql); } diff --git a/FreeSql/MySql/MySqlCodeFirst.cs b/FreeSql/MySql/MySqlCodeFirst.cs index 0fc738cf..62fa7285 100644 --- a/FreeSql/MySql/MySqlCodeFirst.cs +++ b/FreeSql/MySql/MySqlCodeFirst.cs @@ -112,7 +112,7 @@ namespace FreeSql.MySql { var tboldname = tb.DbOldName?.Split(new[] { '.' }, 2); //鏃ц〃鍚 if (tboldname?.Length == 1) tboldname = new[] { database, tboldname[0] }; - if (string.Compare(tbname[0], database, true) != 0 && ExecuteScalar(database, _commonUtils.FormatSql(" select 1 from pg_database where datname={0}", tbname[0])) == null) //鍒涘缓鏁版嵁搴 + if (string.Compare(tbname[0], database, true) != 0 && ExecuteScalar(database, _commonUtils.FormatSql(" select 1 from information_schema.schemata where schema_name={0}", tbname[0])) == null) //鍒涘缓鏁版嵁搴 sb.Append($"CREATE DATABASE IF NOT EXISTS ").Append(_commonUtils.QuoteSqlName(tbname[0])).Append(" default charset utf8 COLLATE utf8_general_ci;\r\n"); var sbalter = new StringBuilder(); @@ -144,7 +144,7 @@ namespace FreeSql.MySql { sb.Remove(sb.Length - 2, 2).Append("),"); } sb.Remove(sb.Length - 1, 1); - sb.Append("\r\n) Engine=InnoDB CHARACTER SET utf8;\r\n"); + sb.Append("\r\n) Engine=InnoDB;\r\n"); continue; } //濡傛灉鏂拌〃锛屾棫琛ㄥ湪涓涓暟鎹簱涓嬶紝鐩存帴淇敼琛ㄥ悕 @@ -251,7 +251,7 @@ where a.constraint_schema IN ({0}) and a.table_name IN ({1})", tboldname ?? tbna sb.Remove(sb.Length - 2, 2).Append("),"); } sb.Remove(sb.Length - 1, 1); - sb.Append("\r\n) Engine=InnoDB CHARACTER SET utf8;\r\n"); + sb.Append("\r\n) Engine=InnoDB;\r\n"); sb.Append("INSERT INTO ").Append(tmptablename).Append(" ("); foreach (var tbcol in tb.Columns.Values) sb.Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(", ");