Merge pull request 'BUG:种子数据类型如果出现空数据会立即终止后序的所有种子数据生成' (#350) from koy07555/Admin.NET.Pro:种子数据生成生大BUG into v2
Reviewed-on: https://code.adminnet.top/Admin.NET/Admin.NET.Pro/pulls/350
This commit is contained in:
commit
e33777d783
@ -131,15 +131,15 @@ public static class SqlSugarExtension
|
|||||||
|
|
||||||
Expression binaryExpresioFilter;
|
Expression binaryExpresioFilter;
|
||||||
|
|
||||||
if (Enum.IsDefined(typeof(FilterLogicEnum), filter.Logic))
|
if (filter.Logic.HasValue)
|
||||||
{
|
{
|
||||||
if (filter.Filters is null) throw new ArgumentException("The Filters attribute is required when declaring a logic");
|
if (filter.Filters is null) throw new ArgumentException("The Filters attribute is required when declaring a logic");
|
||||||
binaryExpresioFilter = CreateFilterExpression(filter.Logic, filter.Filters, parameter);
|
binaryExpresioFilter = CreateFilterExpression(filter.Logic.Value, filter.Filters, parameter);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var filterValid = GetValidFilter(filter);
|
var filterValid = GetValidFilter(filter);
|
||||||
binaryExpresioFilter = CreateFilterExpression(filterValid.Field!, filterValid.Operator, filterValid.Value, parameter);
|
binaryExpresioFilter = CreateFilterExpression(filterValid.Field!, filterValid.Operator.Value, filterValid.Value, parameter);
|
||||||
}
|
}
|
||||||
|
|
||||||
var lambda = Expression.Lambda<Func<T, bool>>(binaryExpresioFilter, parameter);
|
var lambda = Expression.Lambda<Func<T, bool>>(binaryExpresioFilter, parameter);
|
||||||
@ -175,15 +175,15 @@ public static class SqlSugarExtension
|
|||||||
{
|
{
|
||||||
Expression bExpresionFilter;
|
Expression bExpresionFilter;
|
||||||
|
|
||||||
if (Enum.IsDefined(typeof(FilterLogicEnum), filter.Logic))
|
if (filter.Logic.HasValue)
|
||||||
{
|
{
|
||||||
if (filter.Filters is null) throw new ArgumentException("The Filters attribute is required when declaring a logic");
|
if (filter.Filters is null) throw new ArgumentException("The Filters attribute is required when declaring a logic");
|
||||||
bExpresionFilter = CreateFilterExpression(filter.Logic, filter.Filters, parameter);
|
bExpresionFilter = CreateFilterExpression(filter.Logic.Value, filter.Filters, parameter);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var filterValid = GetValidFilter(filter);
|
var filterValid = GetValidFilter(filter);
|
||||||
bExpresionFilter = CreateFilterExpression(filterValid.Field!, filterValid.Operator, filterValid.Value, parameter);
|
bExpresionFilter = CreateFilterExpression(filterValid.Field!, filterValid.Operator.Value, filterValid.Value, parameter);
|
||||||
}
|
}
|
||||||
|
|
||||||
filterExpression = filterExpression is null ? bExpresionFilter : CombineFilter(filterLogic, filterExpression, bExpresionFilter);
|
filterExpression = filterExpression is null ? bExpresionFilter : CombineFilter(filterLogic, filterExpression, bExpresionFilter);
|
||||||
@ -384,23 +384,38 @@ public static class SqlSugarExtension
|
|||||||
{
|
{
|
||||||
if (entityType.GetCustomAttribute<SysTableAttribute>() == null &&
|
if (entityType.GetCustomAttribute<SysTableAttribute>() == null &&
|
||||||
(entityType.GetCustomAttribute<LogTableAttribute>() != null ||
|
(entityType.GetCustomAttribute<LogTableAttribute>() != null ||
|
||||||
entityType.GetCustomAttribute<TenantAttribute>() != null))
|
entityType.GetCustomAttribute<TenantAttribute>() != null))
|
||||||
return default;
|
{
|
||||||
|
Console.WriteLine($" 忽略 {seedType.FullName,-58} ({dbProvider.CurrentConnectionConfig.ConfigId}) 原因:非SysTable 与 (LogTable 或 Tenant)");
|
||||||
|
return default;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (config.ConfigId.ToString() == SqlSugarConst.LogConfigId) // 日志库
|
else if (config.ConfigId.ToString() == SqlSugarConst.LogConfigId) // 日志库
|
||||||
{
|
{
|
||||||
if (entityType.GetCustomAttribute<LogTableAttribute>() == null) return default;
|
if (entityType.GetCustomAttribute<LogTableAttribute>() == null)
|
||||||
|
{
|
||||||
|
Console.WriteLine($" 忽略 {seedType.FullName,-58} ({dbProvider.CurrentConnectionConfig.ConfigId}) 原因:LogTable");
|
||||||
|
return default;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var att = entityType.GetCustomAttribute<TenantAttribute>(); // 自定义的库
|
var att = entityType.GetCustomAttribute<TenantAttribute>(); // 自定义的库
|
||||||
if (att == null || att.configId.ToString() != config.ConfigId.ToString()) return default;
|
if (att == null || att.configId.ToString() != config.ConfigId.ToString())
|
||||||
|
{
|
||||||
|
Console.WriteLine($" 忽略 {seedType.FullName,-58} ({dbProvider.CurrentConnectionConfig.ConfigId}) 原因: Tenant 表,但不是这个库:{att.configId} != {config.ConfigId} ");
|
||||||
|
return default;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var instance = Activator.CreateInstance(seedType);
|
var instance = Activator.CreateInstance(seedType);
|
||||||
var hasDataMethod = seedType.GetMethod("HasData");
|
var hasDataMethod = seedType.GetMethod("HasData");
|
||||||
var seedData = ((IEnumerable)hasDataMethod?.Invoke(instance, null))?.Cast<object>().ToArray() ?? [];
|
var seedData = ((IEnumerable)hasDataMethod?.Invoke(instance, null))?.Cast<object>().ToArray() ?? [];
|
||||||
if (!seedData.Any()) return default;
|
if (!seedData.Any())
|
||||||
|
{
|
||||||
|
Console.WriteLine($" 忽略 {seedType.FullName,-58} ({dbProvider.CurrentConnectionConfig.ConfigId}) 原因:没有数据");
|
||||||
|
return default;
|
||||||
|
}
|
||||||
|
|
||||||
// 若实体包含Id字段,则设置为当前租户Id递增1
|
// 若实体包含Id字段,则设置为当前租户Id递增1
|
||||||
var idProp = entityType.GetProperty(nameof(EntityBaseId.Id));
|
var idProp = entityType.GetProperty(nameof(EntityBaseId.Id));
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user