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(在线)