- 调整 SyncStructure 返回值为 void

This commit is contained in:
28810 2020-04-07 11:25:13 +08:00
parent 19ab4da369
commit 74f8700c21
4 changed files with 28 additions and 18 deletions

View File

@ -121,6 +121,13 @@
清空状态数据 清空状态数据
</summary> </summary>
</member> </member>
<member name="M:FreeSql.DbSet`1.RemoveAsync(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}})">
<summary>
根据 lambda 条件删除数据
</summary>
<param name="predicate"></param>
<returns></returns>
</member>
<member name="M:FreeSql.DbSet`1.Add(`0)"> <member name="M:FreeSql.DbSet`1.Add(`0)">
<summary> <summary>
添加 添加
@ -215,6 +222,15 @@
</summary> </summary>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:FreeSql.FreeSqlRepositoryDependencyInjection.AddFreeRepository(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{FreeSql.FluentDataFilter},System.Reflection.Assembly[])">
<summary>
批量注入 Repository可以参考代码自行调整
</summary>
<param name="services"></param>
<param name="globalDataFilter"></param>
<param name="assemblies"></param>
<returns></returns>
</member>
<member name="P:FreeSql.IBaseRepository.Orm"> <member name="P:FreeSql.IBaseRepository.Orm">
<summary> <summary>
注意IFreeSql 属于顶级对象,事务无法自动传递。<para></para> 注意IFreeSql 属于顶级对象,事务无法自动传递。<para></para>

View File

@ -2763,14 +2763,12 @@
同步实体类型到数据库 同步实体类型到数据库
</summary> </summary>
<typeparam name="TEntity"></typeparam> <typeparam name="TEntity"></typeparam>
<returns></returns>
</member> </member>
<member name="M:FreeSql.ICodeFirst.SyncStructure(System.Type[])"> <member name="M:FreeSql.ICodeFirst.SyncStructure(System.Type[])">
<summary> <summary>
同步实体类型集合到数据库 同步实体类型集合到数据库
</summary> </summary>
<param name="entityTypes"></param> <param name="entityTypes"></param>
<returns></returns>
</member> </member>
<member name="M:FreeSql.ICodeFirst.SyncStructure(System.Type,System.String)"> <member name="M:FreeSql.ICodeFirst.SyncStructure(System.Type,System.String)">
<summary> <summary>
@ -2778,7 +2776,6 @@
</summary> </summary>
<param name="entityType">实体类型</param> <param name="entityType">实体类型</param>
<param name="tableName">指定表名对比</param> <param name="tableName">指定表名对比</param>
<returns></returns>
</member> </member>
<member name="M:FreeSql.ICodeFirst.GetDbInfo(System.Type)"> <member name="M:FreeSql.ICodeFirst.GetDbInfo(System.Type)">
<summary> <summary>

View File

@ -66,21 +66,18 @@ namespace FreeSql
/// 同步实体类型到数据库 /// 同步实体类型到数据库
/// </summary> /// </summary>
/// <typeparam name="TEntity"></typeparam> /// <typeparam name="TEntity"></typeparam>
/// <returns></returns> void SyncStructure<TEntity>();
bool SyncStructure<TEntity>();
/// <summary> /// <summary>
/// 同步实体类型集合到数据库 /// 同步实体类型集合到数据库
/// </summary> /// </summary>
/// <param name="entityTypes"></param> /// <param name="entityTypes"></param>
/// <returns></returns> void SyncStructure(params Type[] entityTypes);
bool SyncStructure(params Type[] entityTypes);
/// <summary> /// <summary>
/// 同步实体类型到数据库(指定表名) /// 同步实体类型到数据库(指定表名)
/// </summary> /// </summary>
/// <param name="entityType">实体类型</param> /// <param name="entityType">实体类型</param>
/// <param name="tableName">指定表名对比</param> /// <param name="tableName">指定表名对比</param>
/// <returns></returns> void SyncStructure(Type entityType, string tableName);
bool SyncStructure(Type entityType, string tableName);
/// <summary> /// <summary>
/// 根据 System.Type 获取数据库信息 /// 根据 System.Type 获取数据库信息

View File

@ -81,18 +81,18 @@ namespace FreeSql.Internal.CommonProvider
internal void _dicSycedTryAdd(Type entityType, string tableName = null) => internal void _dicSycedTryAdd(Type entityType, string tableName = null) =>
_dicSycedGetOrAdd(entityType).TryAdd(GetTableNameLowerOrUpper(tableName), true); _dicSycedGetOrAdd(entityType).TryAdd(GetTableNameLowerOrUpper(tableName), true);
public bool SyncStructure<TEntity>() => public void SyncStructure<TEntity>() =>
this.SyncStructure(new TypeAndName(typeof(TEntity), "")); this.SyncStructure(new TypeAndName(typeof(TEntity), ""));
public bool SyncStructure(params Type[] entityTypes) => entityTypes == null ? false : public void SyncStructure(params Type[] entityTypes) =>
this.SyncStructure(entityTypes.Distinct().Select(a => new TypeAndName(a, "")).ToArray()); this.SyncStructure(entityTypes?.Distinct().Select(a => new TypeAndName(a, "")).ToArray());
public bool SyncStructure(Type entityType, string tableName) => public void SyncStructure(Type entityType, string tableName) =>
this.SyncStructure(new TypeAndName(entityType, GetTableNameLowerOrUpper(tableName))); this.SyncStructure(new TypeAndName(entityType, GetTableNameLowerOrUpper(tableName)));
protected bool SyncStructure(params TypeAndName[] objects) protected void SyncStructure(params TypeAndName[] objects)
{ {
if (objects == null) return false; if (objects == null) return;
var syncObjects = objects.Where(a => _dicSycedGetOrAdd(a.entityType).ContainsKey(GetTableNameLowerOrUpper(a.tableName)) == false && GetTableByEntity(a.entityType)?.DisableSyncStructure == false) var syncObjects = objects.Where(a => _dicSycedGetOrAdd(a.entityType).ContainsKey(GetTableNameLowerOrUpper(a.tableName)) == false && GetTableByEntity(a.entityType)?.DisableSyncStructure == false)
.Select(a => new TypeAndName(a.entityType, GetTableNameLowerOrUpper(a.tableName))).ToArray(); .Select(a => new TypeAndName(a.entityType, GetTableNameLowerOrUpper(a.tableName))).ToArray();
if (syncObjects.Any() == false) return false; 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.entityType).ToArray());
_orm.Aop.SyncStructureBeforeHandler?.Invoke(this, before); _orm.Aop.SyncStructureBeforeHandler?.Invoke(this, before);
Exception exception = null; Exception exception = null;
@ -105,11 +105,11 @@ namespace FreeSql.Internal.CommonProvider
if (string.IsNullOrEmpty(ddl)) if (string.IsNullOrEmpty(ddl))
{ {
foreach (var syncObject in syncObjects) _dicSycedTryAdd(syncObject.entityType, syncObject.tableName); foreach (var syncObject in syncObjects) _dicSycedTryAdd(syncObject.entityType, syncObject.tableName);
return true; return;
} }
var affrows = ExecuteDDLStatements(ddl); var affrows = ExecuteDDLStatements(ddl);
foreach (var syncObject in syncObjects) _dicSycedTryAdd(syncObject.entityType, syncObject.tableName); foreach (var syncObject in syncObjects) _dicSycedTryAdd(syncObject.entityType, syncObject.tableName);
return true; return;
} }
} }
catch (Exception ex) catch (Exception ex)