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;
|
||||
|
||||
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");
|
||||
binaryExpresioFilter = CreateFilterExpression(filter.Logic, filter.Filters, parameter);
|
||||
binaryExpresioFilter = CreateFilterExpression(filter.Logic.Value, filter.Filters, parameter);
|
||||
}
|
||||
else
|
||||
{
|
||||
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);
|
||||
@ -175,15 +175,15 @@ public static class SqlSugarExtension
|
||||
{
|
||||
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");
|
||||
bExpresionFilter = CreateFilterExpression(filter.Logic, filter.Filters, parameter);
|
||||
bExpresionFilter = CreateFilterExpression(filter.Logic.Value, filter.Filters, parameter);
|
||||
}
|
||||
else
|
||||
{
|
||||
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);
|
||||
@ -384,23 +384,38 @@ public static class SqlSugarExtension
|
||||
{
|
||||
if (entityType.GetCustomAttribute<SysTableAttribute>() == null &&
|
||||
(entityType.GetCustomAttribute<LogTableAttribute>() != null ||
|
||||
entityType.GetCustomAttribute<TenantAttribute>() != null))
|
||||
return default;
|
||||
entityType.GetCustomAttribute<TenantAttribute>() != null))
|
||||
{
|
||||
Console.WriteLine($" 忽略 {seedType.FullName,-58} ({dbProvider.CurrentConnectionConfig.ConfigId}) 原因:非SysTable 与 (LogTable 或 Tenant)");
|
||||
return default;
|
||||
}
|
||||
}
|
||||
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
|
||||
{
|
||||
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 hasDataMethod = seedType.GetMethod("HasData");
|
||||
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
|
||||
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