From 1fc4c9c46e9514805badf7fa523cb15963f81157 Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Thu, 22 Oct 2020 16:52:53 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BC=98=E5=8C=96=20MySql=20CodeFirst=20?= =?UTF-8?q?=E7=B4=A2=E5=BC=95=E7=9A=84=E5=BB=BA=E7=AB=8B=20=EF=BC=9B#498?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FreeSql.Provider.MySql.csproj | 2 +- .../FreeSql.Provider.MySql/MySqlCodeFirst.cs | 18 +++++++++--------- .../MySql/OdbcMySqlCodeFirst.cs | 18 +++++++++--------- readme.md | 3 ++- 4 files changed, 21 insertions(+), 20 deletions(-) diff --git a/Providers/FreeSql.Provider.MySql/FreeSql.Provider.MySql.csproj b/Providers/FreeSql.Provider.MySql/FreeSql.Provider.MySql.csproj index 64d54185..4c2ffd7e 100644 --- a/Providers/FreeSql.Provider.MySql/FreeSql.Provider.MySql.csproj +++ b/Providers/FreeSql.Provider.MySql/FreeSql.Provider.MySql.csproj @@ -26,7 +26,7 @@ - + diff --git a/Providers/FreeSql.Provider.MySql/MySqlCodeFirst.cs b/Providers/FreeSql.Provider.MySql/MySqlCodeFirst.cs index 69d6c835..9b9a827e 100644 --- a/Providers/FreeSql.Provider.MySql/MySqlCodeFirst.cs +++ b/Providers/FreeSql.Provider.MySql/MySqlCodeFirst.cs @@ -151,25 +151,25 @@ namespace FreeSql.MySql foreach (var tbcol in tb.Primarys) sb.Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(", "); sb.Remove(sb.Length - 2, 2).Append("),"); } - sb.Remove(sb.Length - 1, 1); - sb.Append("\r\n) Engine=InnoDB"); - if (string.IsNullOrEmpty(tb.Comment) == false) - sb.Append(" Comment=").Append(_commonUtils.FormatSql("{0}", tb.Comment)); - sb.Append(";\r\n"); - //创建表的索引 + //创建表的索引,感谢 @mafeng8,这样写可以支持自增不是主键的情况 foreach (var uk in tb.Indexes) { - sb.Append("CREATE "); + sb.Append(" \r\n "); if (uk.IsUnique) sb.Append("UNIQUE "); - sb.Append("INDEX ").Append(_commonUtils.QuoteSqlName(ReplaceIndexName(uk.Name, tbname[1]))).Append(" ON ").Append(createTableName).Append("("); + sb.Append("INDEX ").Append(_commonUtils.QuoteSqlName(ReplaceIndexName(uk.Name, tbname[1]))).Append("("); foreach (var tbcol in uk.Columns) { sb.Append(_commonUtils.QuoteSqlName(tbcol.Column.Attribute.Name)); if (tbcol.IsDesc) sb.Append(" DESC"); sb.Append(", "); } - sb.Remove(sb.Length - 2, 2).Append(");\r\n"); + sb.Remove(sb.Length - 2, 2).Append("),"); } + sb.Remove(sb.Length - 1, 1); + sb.Append("\r\n) Engine=InnoDB"); + if (string.IsNullOrEmpty(tb.Comment) == false) + sb.Append(" Comment=").Append(_commonUtils.FormatSql("{0}", tb.Comment)); + sb.Append(";\r\n"); continue; } //如果新表,旧表在一个数据库下,直接修改表名 diff --git a/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlCodeFirst.cs b/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlCodeFirst.cs index e1fb6792..0bb333da 100644 --- a/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlCodeFirst.cs +++ b/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlCodeFirst.cs @@ -140,25 +140,25 @@ namespace FreeSql.Odbc.MySql foreach (var tbcol in tb.Primarys) sb.Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(", "); sb.Remove(sb.Length - 2, 2).Append("),"); } - sb.Remove(sb.Length - 1, 1); - sb.Append("\r\n) Engine=InnoDB"); - if (string.IsNullOrEmpty(tb.Comment) == false) - sb.Append(" Comment=").Append(_commonUtils.FormatSql("{0}", tb.Comment)); - sb.Append(";\r\n"); - //创建表的索引 + //创建表的索引,感谢 @mafeng8,这样写可以支持自增不是主键的情况 foreach (var uk in tb.Indexes) { - sb.Append("CREATE "); + sb.Append(" \r\n "); if (uk.IsUnique) sb.Append("UNIQUE "); - sb.Append("INDEX ").Append(_commonUtils.QuoteSqlName(ReplaceIndexName(uk.Name, tbname[1]))).Append(" ON ").Append(createTableName).Append("("); + sb.Append("INDEX ").Append(_commonUtils.QuoteSqlName(ReplaceIndexName(uk.Name, tbname[1]))).Append("("); foreach (var tbcol in uk.Columns) { sb.Append(_commonUtils.QuoteSqlName(tbcol.Column.Attribute.Name)); if (tbcol.IsDesc) sb.Append(" DESC"); sb.Append(", "); } - sb.Remove(sb.Length - 2, 2).Append(");\r\n"); + sb.Remove(sb.Length - 2, 2).Append("),"); } + sb.Remove(sb.Length - 1, 1); + sb.Append("\r\n) Engine=InnoDB"); + if (string.IsNullOrEmpty(tb.Comment) == false) + sb.Append(" Comment=").Append(_commonUtils.FormatSql("{0}", tb.Comment)); + sb.Append(";\r\n"); continue; } //如果新表,旧表在一个数据库下,直接修改表名 diff --git a/readme.md b/readme.md index 52a00d81..9d31601f 100644 --- a/readme.md +++ b/readme.md @@ -182,7 +182,8 @@ Elapsed: 00:00:00.6495301; Query Entity Counts: 131072; ORM: Dapper [tky753](https://github.com/tky753)、 [feijie999](https://github.com/feijie999)、 constantine、 -[JohnZhou2020](https://github.com/JohnZhou2020) +[JohnZhou2020](https://github.com/JohnZhou2020)、 +[mafeng8](https://github.com/mafeng8) QQ群:4336577(已满)、8578575(在线)、52508226(在线)