diff --git a/Src/Asp.NetCore2/SqlSugar/Realization/Sqlite/CodeFirst/SqliteCodeFirst.cs b/Src/Asp.NetCore2/SqlSugar/Realization/Sqlite/CodeFirst/SqliteCodeFirst.cs index 61f967d2c..c4cd68c62 100644 --- a/Src/Asp.NetCore2/SqlSugar/Realization/Sqlite/CodeFirst/SqliteCodeFirst.cs +++ b/Src/Asp.NetCore2/SqlSugar/Realization/Sqlite/CodeFirst/SqliteCodeFirst.cs @@ -91,7 +91,7 @@ namespace SqlSugar { var tableName = GetTableName(entityInfo); string backupName=tableName+DateTime.Now.ToString("yyyyMMddHHmmss"); - Check.Exception(entityInfo.Columns.Where(it => it.IsPrimarykey).Count() > 1, "Use Code First ,The primary key must not exceed 1"); + //Check.Exception(entityInfo.Columns.Where(it => it.IsPrimarykey).Count() > 1, "Use Code First ,The primary key must not exceed 1"); List columns = new List(); if (entityInfo.Columns.HasValue()) { diff --git a/Src/Asp.NetCore2/SqlSugar/Realization/Sqlite/DbMaintenance/SqliteDbMaintenance.cs b/Src/Asp.NetCore2/SqlSugar/Realization/Sqlite/DbMaintenance/SqliteDbMaintenance.cs index 28be9104e..5b9c0b242 100644 --- a/Src/Asp.NetCore2/SqlSugar/Realization/Sqlite/DbMaintenance/SqliteDbMaintenance.cs +++ b/Src/Asp.NetCore2/SqlSugar/Realization/Sqlite/DbMaintenance/SqliteDbMaintenance.cs @@ -84,7 +84,7 @@ namespace SqlSugar { get { - return "CREATE TABLE {0}(\r\n{1} )"; + return "CREATE TABLE {0}(\r\n{1} $PrimaryKey )"; } } protected override string CreateTableColumn @@ -234,9 +234,9 @@ namespace SqlSugar } } - protected override string CreateIndexSql + protected override string CreateIndexSql { - get + get { return "CREATE {3} INDEX Index_{0}_{2} ON {0}({1})"; } @@ -362,7 +362,7 @@ namespace SqlSugar { return true; } - + public override bool BackupTable(string oldTableName, string newTableName, int maxBackupDataRows = int.MaxValue) { @@ -390,10 +390,21 @@ namespace SqlSugar } } string sql = GetCreateTableSql(tableName, columns); - if (!isCreatePrimaryKey) + string primaryKeyInfo = null; + + if (!isCreatePrimaryKey || columns.Count(it => it.IsPrimarykey) > 1) { sql = sql.Replace("PRIMARY KEY AUTOINCREMENT", "").Replace("PRIMARY KEY", ""); } + + if (columns.Count(it => it.IsPrimarykey) > 1 && isCreatePrimaryKey) + { + primaryKeyInfo = string.Format(",\r\n Primary key({0})", string.Join(",", columns.Where(it => it.IsPrimarykey).Select(it => this.SqlBuilder.GetTranslationColumnName(it.DbColumnName)))); + primaryKeyInfo = primaryKeyInfo.Replace("`", "\""); + } + + sql = sql.Replace("$PrimaryKey", primaryKeyInfo); + this.Context.Ado.ExecuteCommand(sql); return true; }