- 调整 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>
</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)">
<summary>
添加
@ -215,6 +222,15 @@
</summary>
<returns></returns>
</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">
<summary>
注意IFreeSql 属于顶级对象,事务无法自动传递。<para></para>

View File

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

View File

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

View File

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