diff --git a/FreeSql/Interface/ICodeFirst.cs b/FreeSql/Interface/ICodeFirst.cs
index 8aa20684b..8aa129c5d 100644
--- a/FreeSql/Interface/ICodeFirst.cs
+++ b/FreeSql/Interface/ICodeFirst.cs
@@ -62,12 +62,13 @@ public interface ICodeFirst
/// 指定表名对比
///
string GetComparisonDDLStatements(Type entityType, string tableName);
- ///
- /// 同步实体类型到数据库
- /// 注意:生产环境中谨慎使用
- ///
- ///
- void SyncStructure();
+ string GetComparisonDDLStatements(TableInfo tableSchema, string tableName);
+ ///
+ /// 同步实体类型到数据库
+ /// 注意:生产环境中谨慎使用
+ ///
+ ///
+ void SyncStructure();
///
/// 同步实体类型集合到数据库
/// 注意:生产环境中谨慎使用
@@ -82,13 +83,14 @@ public interface ICodeFirst
/// 指定表名对比
/// 强制同步结构,无视缓存每次都同步
void SyncStructure(Type entityType, string tableName, bool isForceSync = false);
+ void SyncStructure(TableInfo tableSchema, string tableName, bool isForceSync = false);
- ///
- /// 根据 System.Type 获取数据库信息
- ///
- ///
- ///
- DbInfoResult GetDbInfo(Type type);
+ ///
+ /// 根据 System.Type 获取数据库信息
+ ///
+ ///
+ ///
+ DbInfoResult GetDbInfo(Type type);
///
/// FreeSql FluentApi 配置实体,方法名与特性相同
///
diff --git a/FreeSql/Internal/CommonProvider/CodeFirstProvider.cs b/FreeSql/Internal/CommonProvider/CodeFirstProvider.cs
index 034390751..827658b65 100644
--- a/FreeSql/Internal/CommonProvider/CodeFirstProvider.cs
+++ b/FreeSql/Internal/CommonProvider/CodeFirstProvider.cs
@@ -50,19 +50,21 @@ protected string GetTableNameLowerOrUpper(string tableName)
return tableName;
}
public string GetComparisonDDLStatements() =>
- this.GetComparisonDDLStatements(new TypeAndName(typeof(TEntity), ""));
+ this.GetComparisonDDLStatements(new TypeSchemaAndName(GetTableByEntity(typeof(TEntity)), ""));
public string GetComparisonDDLStatements(params Type[] entityTypes) => entityTypes == null ? null :
- this.GetComparisonDDLStatements(entityTypes.Distinct().Select(a => new TypeAndName(a, "")).ToArray());
+ this.GetComparisonDDLStatements(entityTypes.Distinct().Select(a => new TypeSchemaAndName(GetTableByEntity(a), "")).ToArray());
public string GetComparisonDDLStatements(Type entityType, string tableName) =>
- this.GetComparisonDDLStatements(new TypeAndName(entityType, GetTableNameLowerOrUpper(tableName)));
- protected abstract string GetComparisonDDLStatements(params TypeAndName[] objects);
- public class TypeAndName
+ this.GetComparisonDDLStatements(new TypeSchemaAndName(GetTableByEntity(entityType), GetTableNameLowerOrUpper(tableName)));
+ public string GetComparisonDDLStatements(TableInfo tableSchema, string tableName) =>
+ this.GetComparisonDDLStatements(new TypeSchemaAndName(tableSchema, GetTableNameLowerOrUpper(tableName)));
+ protected abstract string GetComparisonDDLStatements(params TypeSchemaAndName[] objects);
+ public class TypeSchemaAndName
{
- public Type entityType { get; }
+ public TableInfo tableSchema { get; }
public string tableName { get; }
- public TypeAndName(Type entityType, string tableName)
+ public TypeSchemaAndName(TableInfo tableSchema, string tableName)
{
- this.entityType = entityType;
+ this.tableSchema = tableSchema;
this.tableName = tableName;
}
}
@@ -82,24 +84,33 @@ public void _dicSycedTryAdd(Type entityType, string tableName = null) =>
_dicSycedGetOrAdd(entityType).TryAdd(GetTableNameLowerOrUpper(tableName), true);
public void SyncStructure() =>
- this.SyncStructure(new TypeAndName(typeof(TEntity), ""));
+ this.SyncStructure(new TypeSchemaAndName(GetTableByEntity(typeof(TEntity)), ""));
public void SyncStructure(params Type[] entityTypes) =>
- this.SyncStructure(entityTypes?.Distinct().Select(a => new TypeAndName(a, "")).ToArray());
- public void SyncStructure(Type entityType, string tableName, bool isForceSync)
+ this.SyncStructure(entityTypes?.Distinct().Select(a => new TypeSchemaAndName(GetTableByEntity(a), "")).ToArray());
+ public void SyncStructure(Type entityType, string tableName, bool isForceSync) =>
+ this.SyncStructure(GetTableByEntity(entityType), tableName, isForceSync);
+ public void SyncStructure(TableInfo tableSchema, string tableName, bool isForceSync = false)
{
tableName = GetTableNameLowerOrUpper(tableName);
- if (isForceSync && _dicSynced.TryGetValue(entityType, out var dic)) dic.TryRemove(tableName, out var old);
- this.SyncStructure(new TypeAndName(entityType, tableName));
- }
- protected void SyncStructure(params TypeAndName[] objects)
+ if (isForceSync && tableSchema?.Type != null && _dicSynced.TryGetValue(tableSchema.Type, out var dic)) dic.TryRemove(tableName, out var old);
+ this.SyncStructure(new TypeSchemaAndName(tableSchema, tableName));
+ }
+
+ protected void SyncStructure(params TypeSchemaAndName[] objects)
{
if (objects == null) return;
- var syncObjects = objects.Where(a => a.entityType != null && a.entityType != typeof(object) && _dicSycedGetOrAdd(a.entityType).ContainsKey(GetTableNameLowerOrUpper(a.tableName)) == false && GetTableByEntity(a.entityType)?.DisableSyncStructure == false)
- .Select(a => new TypeAndName(a.entityType, GetTableNameLowerOrUpper(a.tableName)))
- .Where(a => !(string.IsNullOrEmpty(a.tableName) == true && GetTableByEntity(a.entityType)?.AsTableImpl != null))
+ var syncObjects = objects.Where(a => a.tableSchema?.Type != null &&
+ (
+ a.tableSchema.Type.Name == "DynamicRepository" && a.tableSchema.Columns.Any()
+ ||
+ a.tableSchema.Type != typeof(object) && _dicSycedGetOrAdd(a.tableSchema.Type).ContainsKey(GetTableNameLowerOrUpper(a.tableName)) == false
+ ) &&
+ a.tableSchema?.DisableSyncStructure == false)
+ .Select(a => new TypeSchemaAndName(a.tableSchema, GetTableNameLowerOrUpper(a.tableName)))
+ .Where(a => !(string.IsNullOrEmpty(a.tableName) == true && a.tableSchema?.AsTableImpl != null))
.ToArray();
if (syncObjects.Any() == false) return;
- var before = new Aop.SyncStructureBeforeEventArgs(syncObjects.Select(a => a.entityType).ToArray());
+ var before = new Aop.SyncStructureBeforeEventArgs(syncObjects.Select(a => a.tableSchema.Type).ToArray());
_orm.Aop.SyncStructureBeforeHandler?.Invoke(this, before);
Exception exception = null;
string ddl = null;
@@ -110,11 +121,11 @@ protected void SyncStructure(params TypeAndName[] objects)
ddl = this.GetComparisonDDLStatements(syncObjects);
if (string.IsNullOrEmpty(ddl))
{
- foreach (var syncObject in syncObjects) _dicSycedTryAdd(syncObject.entityType, syncObject.tableName);
+ foreach (var syncObject in syncObjects) _dicSycedTryAdd(syncObject.tableSchema.Type, syncObject.tableName);
return;
}
var affrows = ExecuteDDLStatements(ddl);
- foreach (var syncObject in syncObjects) _dicSycedTryAdd(syncObject.entityType, syncObject.tableName);
+ foreach (var syncObject in syncObjects) _dicSycedTryAdd(syncObject.tableSchema.Type, syncObject.tableName);
return;
}
}
diff --git a/Providers/FreeSql.Provider.ClickHouse/ClickHouseCodeFirst.cs b/Providers/FreeSql.Provider.ClickHouse/ClickHouseCodeFirst.cs
index b6293849e..e4cf8216e 100644
--- a/Providers/FreeSql.Provider.ClickHouse/ClickHouseCodeFirst.cs
+++ b/Providers/FreeSql.Provider.ClickHouse/ClickHouseCodeFirst.cs
@@ -85,7 +85,7 @@ public override DbInfoResult GetDbInfo(Type type)
return null;
}
- protected override string GetComparisonDDLStatements(params TypeAndName[] objects)
+ protected override string GetComparisonDDLStatements(params TypeSchemaAndName[] objects)
{
Object conn = null;
string database = null;
@@ -100,11 +100,11 @@ protected override string GetComparisonDDLStatements(params TypeAndName[] object
{
if (sb.Length > 0)
sb.Append("\r\n");
- var tb = _commonUtils.GetTableByEntity(obj.entityType);
+ var tb = obj.tableSchema;
if (tb == null)
- throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.entityType.FullName));
+ throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.tableSchema.Type.FullName));
if (tb.Columns.Any() == false)
- throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.entityType.FullName));
+ throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.tableSchema.Type.FullName));
var tbname = _commonUtils.SplitTableName(tb.DbName);
if (tbname?.Length == 1)
tbname = new[] { database, tbname[0] };
diff --git a/Providers/FreeSql.Provider.Custom/CustomCodeFirst.cs b/Providers/FreeSql.Provider.Custom/CustomCodeFirst.cs
index 20deef317..1dc024c53 100644
--- a/Providers/FreeSql.Provider.Custom/CustomCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Custom/CustomCodeFirst.cs
@@ -90,6 +90,6 @@ public override DbInfoResult GetDbInfo(Type type)
return null;
}
- protected override string GetComparisonDDLStatements(params TypeAndName[] objects) => throw new NotImplementedException($"FreeSql.Provider.Custom {CoreStrings.S_Not_Implemented_Feature}");
+ protected override string GetComparisonDDLStatements(params TypeSchemaAndName[] objects) => throw new NotImplementedException($"FreeSql.Provider.Custom {CoreStrings.S_Not_Implemented_Feature}");
}
}
\ No newline at end of file
diff --git a/Providers/FreeSql.Provider.Custom/MySql/CustomMySqlCodeFirst.cs b/Providers/FreeSql.Provider.Custom/MySql/CustomMySqlCodeFirst.cs
index 0212b3fbe..1ecf43ef4 100644
--- a/Providers/FreeSql.Provider.Custom/MySql/CustomMySqlCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Custom/MySql/CustomMySqlCodeFirst.cs
@@ -74,7 +74,7 @@ public override DbInfoResult GetDbInfo(Type type)
return null;
}
- protected override string GetComparisonDDLStatements(params TypeAndName[] objects)
+ protected override string GetComparisonDDLStatements(params TypeSchemaAndName[] objects)
{
Object conn = null;
string database = null;
@@ -88,9 +88,9 @@ protected override string GetComparisonDDLStatements(params TypeAndName[] object
foreach (var obj in objects)
{
if (sb.Length > 0) sb.Append("\r\n");
- var tb = _commonUtils.GetTableByEntity(obj.entityType);
- if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.entityType.FullName));
- if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.entityType.FullName));
+ var tb = obj.tableSchema;
+ if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.tableSchema.Type.FullName));
+ if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.tableSchema.Type.FullName));
var tbname = _commonUtils.SplitTableName(tb.DbName);
if (tbname?.Length == 1) tbname = new[] { database, tbname[0] };
diff --git a/Providers/FreeSql.Provider.Custom/Oracle/CustomOracleCodeFirst.cs b/Providers/FreeSql.Provider.Custom/Oracle/CustomOracleCodeFirst.cs
index 4877de4bb..19a7f8e0b 100644
--- a/Providers/FreeSql.Provider.Custom/Oracle/CustomOracleCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Custom/Oracle/CustomOracleCodeFirst.cs
@@ -74,7 +74,7 @@ public override DbInfoResult GetDbInfo(Type type)
return null;
}
- protected override string GetComparisonDDLStatements(params TypeAndName[] objects)
+ protected override string GetComparisonDDLStatements(params TypeSchemaAndName[] objects)
{
var userId = (_orm.Ado as CustomOracleAdo)?.UserId;
if (string.IsNullOrEmpty(userId))
@@ -90,15 +90,15 @@ protected override string GetComparisonDDLStatements(params TypeAndName[] object
foreach (var obj in objects)
{
if (sb.Length > 0) sb.Append("\r\n");
- var tb = _commonUtils.GetTableByEntity(obj.entityType);
- if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.entityType.FullName));
- if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.entityType.FullName));
+ var tb = obj.tableSchema;
+ if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.tableSchema.Type.FullName));
+ if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.tableSchema.Type.FullName));
var tbname = _commonUtils.SplitTableName(tb.DbName);
if (tbname?.Length == 1) tbname = new[] { userId, tbname[0] };
var tboldname = _commonUtils.SplitTableName(tb.DbOldName); //旧表名
if (tboldname?.Length == 1) tboldname = new[] { userId, tboldname[0] };
- var primaryKeyName = (obj.entityType.GetCustomAttributes(typeof(OraclePrimaryKeyNameAttribute), false)?.FirstOrDefault() as OraclePrimaryKeyNameAttribute)?.Name;
+ var primaryKeyName = (obj.tableSchema.Type.GetCustomAttributes(typeof(OraclePrimaryKeyNameAttribute), false)?.FirstOrDefault() as OraclePrimaryKeyNameAttribute)?.Name;
if (string.IsNullOrEmpty(obj.tableName) == false)
{
var tbtmpname = _commonUtils.SplitTableName(obj.tableName);
diff --git a/Providers/FreeSql.Provider.Custom/PostgreSQL/CustomPostgreSQLCodeFirst.cs b/Providers/FreeSql.Provider.Custom/PostgreSQL/CustomPostgreSQLCodeFirst.cs
index 2ad1a5d9a..5ade27660 100644
--- a/Providers/FreeSql.Provider.Custom/PostgreSQL/CustomPostgreSQLCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Custom/PostgreSQL/CustomPostgreSQLCodeFirst.cs
@@ -79,7 +79,7 @@ CsToDb GetDbInfoNoneArray(Type type)
return null;
}
- protected override string GetComparisonDDLStatements(params TypeAndName[] objects)
+ protected override string GetComparisonDDLStatements(params TypeSchemaAndName[] objects)
{
var sb = new StringBuilder();
var seqcols = new List>(); //序列
@@ -96,9 +96,9 @@ protected override string GetComparisonDDLStatements(params TypeAndName[] object
foreach (var obj in objects)
{
if (sb.Length > 0) sb.Append("\r\n");
- var tb = _commonUtils.GetTableByEntity(obj.entityType);
- if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.entityType.FullName));
- if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.entityType.FullName));
+ var tb = obj.tableSchema;
+ if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.tableSchema.Type.FullName));
+ if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.tableSchema.Type.FullName));
var tbname = _commonUtils.SplitTableName(tb.DbName);
if (tbname?.Length == 1) tbname = new[] { "public", tbname[0] };
diff --git a/Providers/FreeSql.Provider.Custom/SqlServer/CustomSqlServerCodeFirst.cs b/Providers/FreeSql.Provider.Custom/SqlServer/CustomSqlServerCodeFirst.cs
index ed213e420..33a6525e6 100644
--- a/Providers/FreeSql.Provider.Custom/SqlServer/CustomSqlServerCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Custom/SqlServer/CustomSqlServerCodeFirst.cs
@@ -134,7 +134,7 @@ void AddOrUpdateMS_Description(StringBuilder sb, string schema, string table, st
, @level2type = 'COLUMN', @level2name = N'{2}'
", schema.Replace("'", "''"), table.Replace("'", "''"), column.Replace("'", "''"), comment?.Replace("'", "''") ?? "");
}
- protected override string GetComparisonDDLStatements(params TypeAndName[] objects)
+ protected override string GetComparisonDDLStatements(params TypeSchemaAndName[] objects)
{
Object conn = null;
string database = null;
@@ -148,9 +148,9 @@ protected override string GetComparisonDDLStatements(params TypeAndName[] object
foreach (var obj in objects)
{
if (sb.Length > 0) sb.Append("\r\n");
- var tb = _commonUtils.GetTableByEntity(obj.entityType);
- if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.entityType.FullName));
- if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.entityType.FullName));
+ var tb = obj.tableSchema;
+ if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.tableSchema.Type.FullName));
+ if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.tableSchema.Type.FullName));
var tbname = _commonUtils.SplitTableName(tb.DbName);
if (tbname?.Length == 1) tbname = new[] { database, "dbo", tbname[0] };
if (tbname?.Length == 2) tbname = new[] { database, tbname[0], tbname[1] };
diff --git a/Providers/FreeSql.Provider.Dameng/DamengCodeFirst.cs b/Providers/FreeSql.Provider.Dameng/DamengCodeFirst.cs
index 2ac88b6e6..73a29ee57 100644
--- a/Providers/FreeSql.Provider.Dameng/DamengCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Dameng/DamengCodeFirst.cs
@@ -75,7 +75,7 @@ public override DbInfoResult GetDbInfo(Type type)
return null;
}
- protected override string GetComparisonDDLStatements(params TypeAndName[] objects)
+ protected override string GetComparisonDDLStatements(params TypeSchemaAndName[] objects)
{
var userId = (_orm.Ado.MasterPool as DamengConnectionPool)?.UserId;
if (string.IsNullOrEmpty(userId))
@@ -91,15 +91,15 @@ protected override string GetComparisonDDLStatements(params TypeAndName[] object
foreach (var obj in objects)
{
if (sb.Length > 0) sb.Append("\r\n");
- var tb = _commonUtils.GetTableByEntity(obj.entityType);
- if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.entityType.FullName));
- if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.entityType.FullName));
+ var tb = obj.tableSchema;
+ if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.tableSchema.Type.FullName));
+ if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.tableSchema.Type.FullName));
var tbname = _commonUtils.SplitTableName(tb.DbName);
if (tbname?.Length == 1) tbname = new[] { userId, tbname[0] };
var tboldname = _commonUtils.SplitTableName(tb.DbOldName); //旧表名
if (tboldname?.Length == 1) tboldname = new[] { userId, tboldname[0] };
- var primaryKeyName = (obj.entityType.GetCustomAttributes(typeof(OraclePrimaryKeyNameAttribute), false)?.FirstOrDefault() as OraclePrimaryKeyNameAttribute)?.Name;
+ var primaryKeyName = (obj.tableSchema.Type.GetCustomAttributes(typeof(OraclePrimaryKeyNameAttribute), false)?.FirstOrDefault() as OraclePrimaryKeyNameAttribute)?.Name;
if (string.IsNullOrEmpty(obj.tableName) == false)
{
var tbtmpname = _commonUtils.SplitTableName(obj.tableName);
diff --git a/Providers/FreeSql.Provider.Firebird/FirebirdCodeFirst.cs b/Providers/FreeSql.Provider.Firebird/FirebirdCodeFirst.cs
index 4a066cd76..0a2d624a6 100644
--- a/Providers/FreeSql.Provider.Firebird/FirebirdCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Firebird/FirebirdCodeFirst.cs
@@ -81,16 +81,16 @@ CsToDb GetDbInfoNoneArray(Type type)
return null;
}
- protected override string GetComparisonDDLStatements(params TypeAndName[] objects)
+ protected override string GetComparisonDDLStatements(params TypeSchemaAndName[] objects)
{
var sb = new StringBuilder();
foreach (var obj in objects)
{
if (sb.Length > 0) sb.Append("\r\n");
- var tb = _commonUtils.GetTableByEntity(obj.entityType);
- if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.entityType.FullName));
- if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.entityType.FullName));
+ var tb = obj.tableSchema;
+ if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.tableSchema.Type.FullName));
+ if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.tableSchema.Type.FullName));
var tbname = tb.DbName;
var tboldname = tb.DbOldName; //旧表名
if (string.IsNullOrEmpty(obj.tableName) == false)
diff --git a/Providers/FreeSql.Provider.GBase/GBaseCodeFirst.cs b/Providers/FreeSql.Provider.GBase/GBaseCodeFirst.cs
index 6ca4d16ed..53c02d105 100644
--- a/Providers/FreeSql.Provider.GBase/GBaseCodeFirst.cs
+++ b/Providers/FreeSql.Provider.GBase/GBaseCodeFirst.cs
@@ -77,7 +77,7 @@ CsToDb GetDbInfoNoneArray(Type type)
return null;
}
- protected override string GetComparisonDDLStatements(params TypeAndName[] objects)
+ protected override string GetComparisonDDLStatements(params TypeSchemaAndName[] objects)
{
Object conn = null;
string database = null;
@@ -91,9 +91,9 @@ protected override string GetComparisonDDLStatements(params TypeAndName[] object
foreach (var obj in objects)
{
if (sb.Length > 0) sb.Append("\r\n");
- var tb = _commonUtils.GetTableByEntity(obj.entityType);
- if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.entityType.FullName));
- if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.entityType.FullName));
+ var tb = obj.tableSchema;
+ if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.tableSchema.Type.FullName));
+ if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.tableSchema.Type.FullName));
var tbname = _commonUtils.SplitTableName(tb.DbName);
if (tbname?.Length == 1) tbname = new[] { database, tbname[0] };
diff --git a/Providers/FreeSql.Provider.KingbaseES/KingbaseESCodeFirst.cs b/Providers/FreeSql.Provider.KingbaseES/KingbaseESCodeFirst.cs
index c49700607..44c28eb76 100644
--- a/Providers/FreeSql.Provider.KingbaseES/KingbaseESCodeFirst.cs
+++ b/Providers/FreeSql.Provider.KingbaseES/KingbaseESCodeFirst.cs
@@ -98,7 +98,7 @@ public void InitIsSysV8R3()
}
}
- protected override string GetComparisonDDLStatements(params TypeAndName[] objects)
+ protected override string GetComparisonDDLStatements(params TypeSchemaAndName[] objects)
{
InitIsSysV8R3();
var pg_ = _isSysV8R3 == true ? "sys_" : "pg_";
@@ -109,9 +109,9 @@ protected override string GetComparisonDDLStatements(params TypeAndName[] object
foreach (var obj in objects)
{
if (sb.Length > 0) sb.Append("\r\n");
- var tb = _commonUtils.GetTableByEntity(obj.entityType);
- if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.entityType.FullName));
- if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.entityType.FullName));
+ var tb = obj.tableSchema;
+ if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.tableSchema.Type.FullName));
+ if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.tableSchema.Type.FullName));
var tbname = _commonUtils.SplitTableName(tb.DbName);
if (tbname?.Length == 1) tbname = new[] { public_, tbname[0] };
diff --git a/Providers/FreeSql.Provider.MsAccess/MsAccessCodeFirst.cs b/Providers/FreeSql.Provider.MsAccess/MsAccessCodeFirst.cs
index ade42a9c6..39b60da2e 100644
--- a/Providers/FreeSql.Provider.MsAccess/MsAccessCodeFirst.cs
+++ b/Providers/FreeSql.Provider.MsAccess/MsAccessCodeFirst.cs
@@ -72,16 +72,16 @@ public override DbInfoResult GetDbInfo(Type type)
return null;
}
- protected override string GetComparisonDDLStatements(params TypeAndName[] objects)
+ protected override string GetComparisonDDLStatements(params TypeSchemaAndName[] objects)
{
var sb = new StringBuilder();
var sbDeclare = new StringBuilder();
foreach (var obj in objects)
{
if (sb.Length > 0) sb.Append("\r\n");
- var tb = _commonUtils.GetTableByEntity(obj.entityType);
- if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.entityType.FullName));
- if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.entityType.FullName));
+ var tb = obj.tableSchema;
+ if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.tableSchema.Type.FullName));
+ if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.tableSchema.Type.FullName));
var tbname = tb.DbName;
var tboldname = tb.DbOldName; //旧表名
if (string.Compare(tbname, tboldname, true) == 0) tboldname = null;
diff --git a/Providers/FreeSql.Provider.MySql/MySqlCodeFirst.cs b/Providers/FreeSql.Provider.MySql/MySqlCodeFirst.cs
index 12ce42601..ca51bfd1f 100644
--- a/Providers/FreeSql.Provider.MySql/MySqlCodeFirst.cs
+++ b/Providers/FreeSql.Provider.MySql/MySqlCodeFirst.cs
@@ -86,7 +86,7 @@ public override DbInfoResult GetDbInfo(Type type)
return null;
}
- protected override string GetComparisonDDLStatements(params TypeAndName[] objects)
+ protected override string GetComparisonDDLStatements(params TypeSchemaAndName[] objects)
{
Object conn = null;
string database = null;
@@ -100,9 +100,9 @@ protected override string GetComparisonDDLStatements(params TypeAndName[] object
foreach (var obj in objects)
{
if (sb.Length > 0) sb.Append("\r\n");
- var tb = _commonUtils.GetTableByEntity(obj.entityType);
- if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.entityType.FullName));
- if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.entityType.FullName));
+ var tb = obj.tableSchema;
+ if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.tableSchema.Type.FullName));
+ if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.tableSchema.Type.FullName));
var tbname = _commonUtils.SplitTableName(tb.DbName);
if (tbname?.Length == 1) tbname = new[] { database, tbname[0] };
diff --git a/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengCodeFirst.cs b/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengCodeFirst.cs
index 52fb7a4df..3e52077dd 100644
--- a/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengCodeFirst.cs
@@ -76,7 +76,7 @@ public override DbInfoResult GetDbInfo(Type type)
return null;
}
- protected override string GetComparisonDDLStatements(params TypeAndName[] objects)
+ protected override string GetComparisonDDLStatements(params TypeSchemaAndName[] objects)
{
var userId = (_orm.Ado.MasterPool as OdbcDamengConnectionPool)?.UserId;
if (string.IsNullOrEmpty(userId))
@@ -92,15 +92,15 @@ protected override string GetComparisonDDLStatements(params TypeAndName[] object
foreach (var obj in objects)
{
if (sb.Length > 0) sb.Append("\r\n");
- var tb = _commonUtils.GetTableByEntity(obj.entityType);
- if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.entityType.FullName));
- if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.entityType.FullName));
+ var tb = obj.tableSchema;
+ if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.tableSchema.Type.FullName));
+ if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.tableSchema.Type.FullName));
var tbname = _commonUtils.SplitTableName(tb.DbName);
if (tbname?.Length == 1) tbname = new[] { userId, tbname[0] };
var tboldname = _commonUtils.SplitTableName(tb.DbOldName); //旧表名
if (tboldname?.Length == 1) tboldname = new[] { userId, tboldname[0] };
- var primaryKeyName = (obj.entityType.GetCustomAttributes(typeof(OraclePrimaryKeyNameAttribute), false)?.FirstOrDefault() as OraclePrimaryKeyNameAttribute)?.Name;
+ var primaryKeyName = (obj.tableSchema.Type.GetCustomAttributes(typeof(OraclePrimaryKeyNameAttribute), false)?.FirstOrDefault() as OraclePrimaryKeyNameAttribute)?.Name;
if (string.IsNullOrEmpty(obj.tableName) == false)
{
var tbtmpname = _commonUtils.SplitTableName(obj.tableName);
diff --git a/Providers/FreeSql.Provider.Odbc/Default/OdbcCodeFirst.cs b/Providers/FreeSql.Provider.Odbc/Default/OdbcCodeFirst.cs
index c7f584a8c..6f7c5de5f 100644
--- a/Providers/FreeSql.Provider.Odbc/Default/OdbcCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Odbc/Default/OdbcCodeFirst.cs
@@ -90,6 +90,6 @@ public override DbInfoResult GetDbInfo(Type type)
return null;
}
- protected override string GetComparisonDDLStatements(params TypeAndName[] objects) => throw new NotImplementedException($"FreeSql.Odbc.Default {CoreStrings.S_Not_Implemented_Feature}");
+ protected override string GetComparisonDDLStatements(params TypeSchemaAndName[] objects) => throw new NotImplementedException($"FreeSql.Odbc.Default {CoreStrings.S_Not_Implemented_Feature}");
}
}
\ No newline at end of file
diff --git a/Providers/FreeSql.Provider.Odbc/KingbaseES/OdbcKingbaseESCodeFirst.cs b/Providers/FreeSql.Provider.Odbc/KingbaseES/OdbcKingbaseESCodeFirst.cs
index 954faae54..1d261ffad 100644
--- a/Providers/FreeSql.Provider.Odbc/KingbaseES/OdbcKingbaseESCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Odbc/KingbaseES/OdbcKingbaseESCodeFirst.cs
@@ -102,7 +102,7 @@ public void InitIsSysV8R3()
}
}
- protected override string GetComparisonDDLStatements(params TypeAndName[] objects)
+ protected override string GetComparisonDDLStatements(params TypeSchemaAndName[] objects)
{
InitIsSysV8R3();
var pg_ = _isSysV8R3 == true ? "sys_" : "pg_";
@@ -113,9 +113,9 @@ protected override string GetComparisonDDLStatements(params TypeAndName[] object
foreach (var obj in objects)
{
if (sb.Length > 0) sb.Append("\r\n");
- var tb = _commonUtils.GetTableByEntity(obj.entityType);
- if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.entityType.FullName));
- if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.entityType.FullName));
+ var tb = obj.tableSchema;
+ if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.tableSchema.Type.FullName));
+ if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.tableSchema.Type.FullName));
var tbname = _commonUtils.SplitTableName(tb.DbName);
if (tbname?.Length == 1) tbname = new[] { public_, tbname[0] };
diff --git a/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlCodeFirst.cs b/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlCodeFirst.cs
index d5a54ce48..569b5f8fe 100644
--- a/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlCodeFirst.cs
@@ -75,7 +75,7 @@ public override DbInfoResult GetDbInfo(Type type)
return null;
}
- protected override string GetComparisonDDLStatements(params TypeAndName[] objects)
+ protected override string GetComparisonDDLStatements(params TypeSchemaAndName[] objects)
{
Object conn = null;
string database = null;
@@ -89,9 +89,9 @@ protected override string GetComparisonDDLStatements(params TypeAndName[] object
foreach (var obj in objects)
{
if (sb.Length > 0) sb.Append("\r\n");
- var tb = _commonUtils.GetTableByEntity(obj.entityType);
- if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.entityType.FullName));
- if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.entityType.FullName));
+ var tb = obj.tableSchema;
+ if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.tableSchema.Type.FullName));
+ if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.tableSchema.Type.FullName));
var tbname = _commonUtils.SplitTableName(tb.DbName);
if (tbname?.Length == 1) tbname = new[] { database, tbname[0] };
diff --git a/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleCodeFirst.cs b/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleCodeFirst.cs
index 12ad0db3e..35fb0fd9b 100644
--- a/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleCodeFirst.cs
@@ -76,7 +76,7 @@ public override DbInfoResult GetDbInfo(Type type)
return null;
}
- protected override string GetComparisonDDLStatements(params TypeAndName[] objects)
+ protected override string GetComparisonDDLStatements(params TypeSchemaAndName[] objects)
{
var userId = (_orm.Ado.MasterPool as OdbcOracleConnectionPool)?.UserId;
if (string.IsNullOrEmpty(userId))
@@ -92,15 +92,15 @@ protected override string GetComparisonDDLStatements(params TypeAndName[] object
foreach (var obj in objects)
{
if (sb.Length > 0) sb.Append("\r\n");
- var tb = _commonUtils.GetTableByEntity(obj.entityType);
- if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.entityType.FullName));
- if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.entityType.FullName));
+ var tb = obj.tableSchema;
+ if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.tableSchema.Type.FullName));
+ if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.tableSchema.Type.FullName));
var tbname = _commonUtils.SplitTableName(tb.DbName);
if (tbname?.Length == 1) tbname = new[] { userId, tbname[0] };
var tboldname = _commonUtils.SplitTableName(tb.DbOldName); //旧表名
if (tboldname?.Length == 1) tboldname = new[] { userId, tboldname[0] };
- var primaryKeyName = (obj.entityType.GetCustomAttributes(typeof(OraclePrimaryKeyNameAttribute), false)?.FirstOrDefault() as OraclePrimaryKeyNameAttribute)?.Name;
+ var primaryKeyName = (obj.tableSchema.Type.GetCustomAttributes(typeof(OraclePrimaryKeyNameAttribute), false)?.FirstOrDefault() as OraclePrimaryKeyNameAttribute)?.Name;
if (string.IsNullOrEmpty(obj.tableName) == false)
{
var tbtmpname = _commonUtils.SplitTableName(obj.tableName);
diff --git a/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLCodeFirst.cs b/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLCodeFirst.cs
index 12fd8a99a..15cc07503 100644
--- a/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLCodeFirst.cs
@@ -80,7 +80,7 @@ CsToDb GetDbInfoNoneArray(Type type)
return null;
}
- protected override string GetComparisonDDLStatements(params TypeAndName[] objects)
+ protected override string GetComparisonDDLStatements(params TypeSchemaAndName[] objects)
{
var sb = new StringBuilder();
var seqcols = new List>(); //序列
@@ -97,9 +97,9 @@ protected override string GetComparisonDDLStatements(params TypeAndName[] object
foreach (var obj in objects)
{
if (sb.Length > 0) sb.Append("\r\n");
- var tb = _commonUtils.GetTableByEntity(obj.entityType);
- if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.entityType.FullName));
- if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.entityType.FullName));
+ var tb = obj.tableSchema;
+ if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.tableSchema.Type.FullName));
+ if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.tableSchema.Type.FullName));
var tbname = _commonUtils.SplitTableName(tb.DbName);
if (tbname?.Length == 1) tbname = new[] { "public", tbname[0] };
diff --git a/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerCodeFirst.cs b/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerCodeFirst.cs
index 5a5eef61c..470a30016 100644
--- a/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerCodeFirst.cs
@@ -135,7 +135,7 @@ void AddOrUpdateMS_Description(StringBuilder sb, string schema, string table, st
, @level2type = 'COLUMN', @level2name = N'{2}'
", schema.Replace("'", "''"), table.Replace("'", "''"), column.Replace("'", "''"), comment?.Replace("'", "''") ?? "");
}
- protected override string GetComparisonDDLStatements(params TypeAndName[] objects)
+ protected override string GetComparisonDDLStatements(params TypeSchemaAndName[] objects)
{
Object conn = null;
string database = null;
@@ -149,9 +149,9 @@ protected override string GetComparisonDDLStatements(params TypeAndName[] object
foreach (var obj in objects)
{
if (sb.Length > 0) sb.Append("\r\n");
- var tb = _commonUtils.GetTableByEntity(obj.entityType);
- if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.entityType.FullName));
- if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.entityType.FullName));
+ var tb = obj.tableSchema;
+ if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.tableSchema.Type.FullName));
+ if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.tableSchema.Type.FullName));
var tbname = _commonUtils.SplitTableName(tb.DbName);
if (tbname?.Length == 1) tbname = new[] { database, "dbo", tbname[0] };
if (tbname?.Length == 2) tbname = new[] { database, tbname[0], tbname[1] };
diff --git a/Providers/FreeSql.Provider.Oracle/OracleCodeFirst.cs b/Providers/FreeSql.Provider.Oracle/OracleCodeFirst.cs
index 358b0c190..c788b97da 100644
--- a/Providers/FreeSql.Provider.Oracle/OracleCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Oracle/OracleCodeFirst.cs
@@ -111,7 +111,7 @@ public override DbInfoResult GetDbInfo(Type type)
return null;
}
- protected override string GetComparisonDDLStatements(params TypeAndName[] objects)
+ protected override string GetComparisonDDLStatements(params TypeSchemaAndName[] objects)
{
var userId = (_orm.Ado.MasterPool as OracleConnectionPool)?.UserId;
if (string.IsNullOrEmpty(userId))
@@ -127,15 +127,15 @@ protected override string GetComparisonDDLStatements(params TypeAndName[] object
foreach (var obj in objects)
{
if (sb.Length > 0) sb.Append("\r\n");
- var tb = _commonUtils.GetTableByEntity(obj.entityType);
- if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.entityType.FullName));
- if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.entityType.FullName));
+ var tb = obj.tableSchema;
+ if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.tableSchema.Type.FullName));
+ if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.tableSchema.Type.FullName));
var tbname = _commonUtils.SplitTableName(tb.DbName);
if (tbname?.Length == 1) tbname = new[] { userId, tbname[0] };
var tboldname = _commonUtils.SplitTableName(tb.DbOldName); //旧表名
if (tboldname?.Length == 1) tboldname = new[] { userId, tboldname[0] };
- var primaryKeyName = (obj.entityType.GetCustomAttributes(typeof(OraclePrimaryKeyNameAttribute), false)?.FirstOrDefault() as OraclePrimaryKeyNameAttribute)?.Name;
+ var primaryKeyName = (obj.tableSchema.Type.GetCustomAttributes(typeof(OraclePrimaryKeyNameAttribute), false)?.FirstOrDefault() as OraclePrimaryKeyNameAttribute)?.Name;
if (string.IsNullOrEmpty(obj.tableName) == false)
{
var tbtmpname = _commonUtils.SplitTableName(obj.tableName);
diff --git a/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLCodeFirst.cs b/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLCodeFirst.cs
index 8818e4e48..9bcc4f803 100644
--- a/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLCodeFirst.cs
+++ b/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLCodeFirst.cs
@@ -130,7 +130,7 @@ CsToDb GetDbInfoNoneArray(Type type)
return null;
}
- protected override string GetComparisonDDLStatements(params TypeAndName[] objects)
+ protected override string GetComparisonDDLStatements(params TypeSchemaAndName[] objects)
{
var sb = new StringBuilder();
var seqcols = new List>(); //序列
@@ -147,9 +147,9 @@ protected override string GetComparisonDDLStatements(params TypeAndName[] object
foreach (var obj in objects)
{
if (sb.Length > 0) sb.Append("\r\n");
- var tb = _commonUtils.GetTableByEntity(obj.entityType);
- if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.entityType.FullName));
- if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.entityType.FullName));
+ var tb = obj.tableSchema;
+ if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.tableSchema.Type.FullName));
+ if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.tableSchema.Type.FullName));
var tbname = _commonUtils.SplitTableName(tb.DbName);
if (tbname?.Length == 1) tbname = new[] { "public", tbname[0] };
diff --git a/Providers/FreeSql.Provider.QuestDb/QuestDbCodeFirst.cs b/Providers/FreeSql.Provider.QuestDb/QuestDbCodeFirst.cs
index b8749b6ff..2bdc9a4b0 100644
--- a/Providers/FreeSql.Provider.QuestDb/QuestDbCodeFirst.cs
+++ b/Providers/FreeSql.Provider.QuestDb/QuestDbCodeFirst.cs
@@ -79,7 +79,7 @@ public override DbInfoResult GetDbInfo(Type type)
return null;
}
- protected override string GetComparisonDDLStatements(params TypeAndName[] objects)
+ protected override string GetComparisonDDLStatements(params TypeSchemaAndName[] objects)
{
var sb = new StringBuilder();
var seqcols = new List>(); //序列
@@ -87,10 +87,10 @@ protected override string GetComparisonDDLStatements(params TypeAndName[] object
foreach (var obj in objects)
{
if (sb.Length > 0) sb.Append("\r\n");
- var tb = _commonUtils.GetTableByEntity(obj.entityType);
- if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.entityType.FullName));
+ var tb = obj.tableSchema;
+ if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.tableSchema.Type.FullName));
if (tb.Columns.Any() == false)
- throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.entityType.FullName));
+ throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.tableSchema.Type.FullName));
var tbname = tb.DbName;
var tboldname = tb.DbOldName;
if (string.IsNullOrEmpty(obj.tableName) == false)
@@ -147,7 +147,7 @@ protected override string GetComparisonDDLStatements(params TypeAndName[] object
sbalter.Remove(sbalter.Length - 1, 1);
//是否存在分表
- foreach (var propety in obj.entityType.GetProperties())
+ foreach (var propety in obj.tableSchema.Type.GetProperties())
{
var timeAttr = propety.GetCustomAttribute();
if (timeAttr != null)
diff --git a/Providers/FreeSql.Provider.ShenTong/ShenTongCodeFirst.cs b/Providers/FreeSql.Provider.ShenTong/ShenTongCodeFirst.cs
index 3fd674928..de8b0e01a 100644
--- a/Providers/FreeSql.Provider.ShenTong/ShenTongCodeFirst.cs
+++ b/Providers/FreeSql.Provider.ShenTong/ShenTongCodeFirst.cs
@@ -86,7 +86,7 @@ CsToDb GetDbInfoNoneArray(Type type)
return null;
}
- protected override string GetComparisonDDLStatements(params TypeAndName[] objects)
+ protected override string GetComparisonDDLStatements(params TypeSchemaAndName[] objects)
{
var sb = new StringBuilder();
var seqcols = new List>(); //序列
@@ -94,9 +94,9 @@ protected override string GetComparisonDDLStatements(params TypeAndName[] object
foreach (var obj in objects)
{
if (sb.Length > 0) sb.Append("\r\n");
- var tb = _commonUtils.GetTableByEntity(obj.entityType);
- if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.entityType.FullName));
- if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.entityType.FullName));
+ var tb = obj.tableSchema;
+ if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.tableSchema.Type.FullName));
+ if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.tableSchema.Type.FullName));
var tbname = _commonUtils.SplitTableName(tb.DbName);
if (tbname?.Length == 1) tbname = new[] { "PUBLIC", tbname[0] };
diff --git a/Providers/FreeSql.Provider.SqlServer/SqlServerCodeFirst.cs b/Providers/FreeSql.Provider.SqlServer/SqlServerCodeFirst.cs
index 859c5938f..2077c4f5e 100644
--- a/Providers/FreeSql.Provider.SqlServer/SqlServerCodeFirst.cs
+++ b/Providers/FreeSql.Provider.SqlServer/SqlServerCodeFirst.cs
@@ -137,7 +137,7 @@ void AddOrUpdateMS_Description(StringBuilder sb, string schema, string table, st
, @level2type = 'COLUMN', @level2name = N'{2}'
", schema.Replace("'", "''"), table.Replace("'", "''"), column.Replace("'", "''"), comment?.Replace("'", "''") ?? "");
}
- protected override string GetComparisonDDLStatements(params TypeAndName[] objects)
+ protected override string GetComparisonDDLStatements(params TypeSchemaAndName[] objects)
{
Object conn = null;
string database = null;
@@ -151,9 +151,9 @@ protected override string GetComparisonDDLStatements(params TypeAndName[] object
foreach (var obj in objects)
{
if (sb.Length > 0) sb.Append("\r\n");
- var tb = _commonUtils.GetTableByEntity(obj.entityType);
- if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.entityType.FullName));
- if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.entityType.FullName));
+ var tb = obj.tableSchema;
+ if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.tableSchema.Type.FullName));
+ if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.tableSchema.Type.FullName));
var tbname = _commonUtils.SplitTableName(tb.DbName);
if (tbname?.Length == 1) tbname = new[] { database, "dbo", tbname[0] };
if (tbname?.Length == 2) tbname = new[] { database, tbname[0], tbname[1] };
diff --git a/Providers/FreeSql.Provider.Sqlite/SqliteCodeFirst.cs b/Providers/FreeSql.Provider.Sqlite/SqliteCodeFirst.cs
index f332db905..6545bff5e 100644
--- a/Providers/FreeSql.Provider.Sqlite/SqliteCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Sqlite/SqliteCodeFirst.cs
@@ -71,16 +71,16 @@ public override DbInfoResult GetDbInfo(Type type)
return null;
}
- protected override string GetComparisonDDLStatements(params TypeAndName[] objects)
+ protected override string GetComparisonDDLStatements(params TypeSchemaAndName[] objects)
{
var sb = new StringBuilder();
var sbDeclare = new StringBuilder();
foreach (var obj in objects)
{
if (sb.Length > 0) sb.Append("\r\n");
- var tb = _commonUtils.GetTableByEntity(obj.entityType);
- if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.entityType.FullName));
- if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.entityType.FullName));
+ var tb = obj.tableSchema;
+ if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.tableSchema.Type.FullName));
+ if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.tableSchema.Type.FullName));
var tbname = _commonUtils.SplitTableName(tb.DbName);
if (tbname?.Length == 1) tbname = new[] { "main", tbname[0] };
diff --git a/Providers/FreeSql.Provider.Xugu/XuguCodeFirst.cs b/Providers/FreeSql.Provider.Xugu/XuguCodeFirst.cs
index 4ecded02a..a47c62dce 100644
--- a/Providers/FreeSql.Provider.Xugu/XuguCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Xugu/XuguCodeFirst.cs
@@ -129,7 +129,7 @@ internal static string GetXuguSqlTypeFullName(object[] row)
sqlType += $"({data_length})";
return sqlType;
}
- protected override string GetComparisonDDLStatements(params TypeAndName[] objects)
+ protected override string GetComparisonDDLStatements(params TypeSchemaAndName[] objects)
{
var sb = new StringBuilder();
var seqcols = new List>(); //序列
@@ -137,9 +137,9 @@ protected override string GetComparisonDDLStatements(params TypeAndName[] object
foreach (var obj in objects)
{
if (sb.Length > 0) sb.Append("\r\n");
- var tb = _commonUtils.GetTableByEntity(obj.entityType);
- if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.entityType.FullName));
- if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.entityType.FullName));
+ var tb = obj.tableSchema;
+ if (tb == null) throw new Exception(CoreStrings.S_Type_IsNot_Migrable(obj.tableSchema.Type.FullName));
+ if (tb.Columns.Any() == false) throw new Exception(CoreStrings.S_Type_IsNot_Migrable_0Attributes(obj.tableSchema.Type.FullName));
var tbname = _commonUtils.SplitTableName(tb.DbName);
if (tbname?.Length == 1) tbname = new[] { DefaultSchema, tbname[0] };
diff --git a/Providers/FreeSql.Provider.Xugu/XuguDbFirst.cs b/Providers/FreeSql.Provider.Xugu/XuguDbFirst.cs
index 1cce68065..2e9e70699 100644
--- a/Providers/FreeSql.Provider.Xugu/XuguDbFirst.cs
+++ b/Providers/FreeSql.Provider.Xugu/XuguDbFirst.cs
@@ -384,7 +384,7 @@ from all_INDEXES a
var index_id = string.Concat(row[2]);
var is_unique = string.Concat(row[3]) == "1";
var is_primary_key = string.Concat(row[4]) == "1";
- var is_clustered = false;//= string.Concat(row[5]) == "1";
+ //var is_clustered = false;//= string.Concat(row[5]) == "1";
var is_desc = false;//string.Concat(row[6]) == "1";
//var inkey = string.Concat(row[7]).Split(' ');
//var attnum = int.Parse(string.Concat(row[8]));