Skip to content

Commit 36b844d

Browse files
committed
修复dynamicshardinghelper的创建库的bug导致默认对象也会创建 发布x.6.0.7
1 parent 3699ccf commit 36b844d

File tree

4 files changed

+33
-32
lines changed

4 files changed

+33
-32
lines changed

benchmarks/ShardingCoreBenchmark/OrderMap.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ internal class OrderMap:IEntityTypeConfiguration<Order>
1313
public void Configure(EntityTypeBuilder<Order> builder)
1414
{
1515
builder.HasKey(o => o.Id);
16-
builder.Property(o => o.Id).IsUnicode(false).HasMaxLength(50);
16+
builder.Property(o => o.Id).ValueGeneratedOnAdd().IsUnicode(false).HasMaxLength(50);
1717
builder.Property(o => o.Body).IsRequired().HasDefaultValue(string.Empty).HasMaxLength(128);
1818
builder.Property(o => o.Remark).IsRequired().HasDefaultValue(string.Empty).HasMaxLength(128);
1919
builder.Property(o => o.Payer).IsRequired().IsUnicode(false).HasMaxLength(50);

samples/Sample.MySql/Startup.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using ShardingCore.Core.RuntimeContexts;
1010
using ShardingCore.EFCores;
1111
using ShardingCore.Extensions;
12+
using ShardingCore.Helpers;
1213
using ShardingCore.TableExists;
1314
using ShardingCore.TableExists.Abstractions;
1415

src/ShardingCore/Extensions/DbContextExtension.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ public static void RemoveDbContextAllRelationModelWithoutShardingDataSourceOnly(
125125
#if EFCORE6
126126
var contextModelRelationalModel = contextModel.GetRelationalModel() as RelationalModel;
127127
var valueTuples =
128-
contextModelRelationalModel.Tables.Where(o => o.Value.EntityTypeMappings.Any(m => entityMetadataManager.IsShardingTable(m.EntityType.ClrType) ||entityMetadataManager.TryGet(m.EntityType.ClrType)==null)).Select(o => o.Key).ToList();
128+
contextModelRelationalModel.Tables.Where(o => o.Value.EntityTypeMappings.Any(m => !entityMetadataManager.IsShardingDataSource(m.EntityType.ClrType) ||entityMetadataManager.TryGet(m.EntityType.ClrType)==null)).Select(o => o.Key).ToList();
129129
for (int i = 0; i < valueTuples.Count; i++)
130130
{
131131
contextModelRelationalModel.Tables.Remove(valueTuples[i]);
@@ -134,7 +134,7 @@ public static void RemoveDbContextAllRelationModelWithoutShardingDataSourceOnly(
134134
#if EFCORE5
135135
var contextModelRelationalModel = contextModel.RelationalModel as RelationalModel;
136136
var valueTuples =
137-
contextModelRelationalModel.Tables.Where(o => o.Value.EntityTypeMappings.Any(m => entityMetadataManager.IsShardingTable(m.EntityType.ClrType)||entityMetadataManager.TryGet(m.EntityType.ClrType)==null)).Select(o => o.Key).ToList();
137+
contextModelRelationalModel.Tables.Where(o => o.Value.EntityTypeMappings.Any(m => !entityMetadataManager.IsShardingDataSource(m.EntityType.ClrType)||entityMetadataManager.TryGet(m.EntityType.ClrType)==null)).Select(o => o.Key).ToList();
138138
for (int i = 0; i < valueTuples.Count; i++)
139139
{
140140
contextModelRelationalModel.Tables.Remove(valueTuples[i]);
@@ -143,7 +143,7 @@ public static void RemoveDbContextAllRelationModelWithoutShardingDataSourceOnly(
143143
#if EFCORE2 || EFCORE3
144144
var entityTypes =
145145
contextModel.GetFieldValue("_entityTypes") as SortedDictionary<string, EntityType>;
146-
var list = entityTypes.Where(o => entityMetadataManager.IsShardingTable(o.Value.ClrType) || entityMetadataManager.TryGet(o.Value.ClrType) == null).Select(o => o.Key).ToList();
146+
var list = entityTypes.Where(o => !entityMetadataManager.IsShardingDataSource(o.Value.ClrType) || entityMetadataManager.TryGet(o.Value.ClrType) == null).Select(o => o.Key).ToList();
147147
for (int i = 0; i < list.Count; i++)
148148
{
149149
entityTypes.Remove(list[i]);

src/ShardingCore/Sharding/Enumerators/AggregateExtensions/AggregateExtension.cs

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ private static MethodCallExpression CreateSumByProperty(this IQueryable source,
124124
return callExpression;
125125
}
126126
/// <summary>
127-
/// 根据属性求和
127+
/// 根据属性求和
128128
/// </summary>
129129
/// <param name="source"></param>
130130
/// <param name="property"></param>
@@ -141,7 +141,7 @@ public static TSelect SumByProperty<TSelect>(this IQueryable source, PropertyInf
141141
return source.Provider.Execute<TSelect>(callExpression);
142142
}
143143
/// <summary>
144-
/// 根据属性求和
144+
/// 根据属性求和
145145
/// </summary>
146146
/// <param name="source"></param>
147147
/// <param name="propertyName"></param>
@@ -156,7 +156,7 @@ public static object SumByPropertyName(this IQueryable source, string propertyNa
156156
return source.SumByProperty(property);
157157
}
158158
/// <summary>
159-
/// 对
159+
/// 对
160160
/// </summary>
161161
/// <typeparam name="TSelect"></typeparam>
162162
/// <param name="source"></param>
@@ -290,12 +290,12 @@ public static object Min(this IQueryable source, PropertyInfo property)
290290
return source.Provider.Execute(callExpression);
291291
}
292292
/// <summary>
293-
/// 获取平均数和 [{avg1,count1},{avg2,count2}....]=>sum(avg1...n*count1...n)/sum(count1...n)
293+
/// 获取平均数和 [{avg1,count1},{avg2,count2}....]=>sum(avg1...n*count1...n)/sum(count1...n)
294294
/// </summary>
295-
/// <param name="source">数据源</param>
296-
/// <param name="averagePropertyName">聚合函数average属性名</param>
297-
/// <param name="countPropertyName">聚合函数count属性名</param>
298-
/// <param name="resultType">平均值返回结果:int/int=double</param>
295+
/// <param name="source">数据源</param>
296+
/// <param name="averagePropertyName">聚合函数average属性名</param>
297+
/// <param name="countPropertyName">聚合函数count属性名</param>
298+
/// <param name="resultType">平均值返回结果:int/int=double</param>
299299
[ExcludeFromCodeCoverage]
300300
public static object AverageWithCount(this IQueryable source, string averagePropertyName, string countPropertyName, Type resultType)
301301
{
@@ -311,7 +311,7 @@ public static object AverageWithCount(this IQueryable source, PropertyInfo avera
311311
if (source == null) throw new ArgumentNullException(nameof(source));
312312
if (averageProperty == null) throw new ArgumentNullException(nameof(averageProperty));
313313
if (countProperty == null) throw new ArgumentNullException(nameof(countProperty));
314-
//获取sum
314+
//获取sum
315315
var sum = source.AverageSum(averageProperty, countProperty);
316316
var count = source.SumByProperty(countProperty);
317317
return AverageConstant(sum, count,resultType);
@@ -327,11 +327,11 @@ public static object AverageConstant(object sum, object count,Type resultType)
327327
{
328328

329329
Expression constantSum = Expression.Constant(sum);
330-
//如果计算类型和返回类型不一致先转成一致
330+
//如果计算类型和返回类型不一致先转成一致
331331
if(sum.GetType()!=resultType)
332332
constantSum = Expression.Convert(constantSum, resultType);
333333
Expression constantCount = Expression.Constant(count);
334-
//如果计算类型和返回类型不一致先转成一致
334+
//如果计算类型和返回类型不一致先转成一致
335335
if (count.GetType() != resultType)
336336
constantCount = Expression.Convert(constantCount, resultType);
337337
var binaryExpression = Expression.Divide(constantSum, constantCount);
@@ -342,11 +342,11 @@ public static TResult AverageConstant<TSum,TCount,TResult>(TSum sum, TCount coun
342342
{
343343
var resultType = typeof(TResult);
344344
Expression constantSum = Expression.Constant(sum);
345-
//如果计算类型和返回类型不一致先转成一致
345+
//如果计算类型和返回类型不一致先转成一致
346346
if (sum.GetType() != resultType)
347347
constantSum = Expression.Convert(constantSum, resultType);
348348
Expression constantCount = Expression.Constant(count);
349-
//如果计算类型和返回类型不一致先转成一致
349+
//如果计算类型和返回类型不一致先转成一致
350350
if (count.GetType() != resultType)
351351
constantCount = Expression.Convert(constantCount, resultType);
352352
var binaryExpression = Expression.Divide(constantSum, constantCount);
@@ -368,12 +368,12 @@ public static TResult AverageConstant<TSum,TCount,TResult>(TSum sum, TCount coun
368368
//}
369369

370370
/// <summary>
371-
/// 获取平均数和 [{avg1,sum1},{avg2,sum2}....]=>sum(sum1...n)/sum(sum1...n/avg1...n)
371+
/// 获取平均数和 [{avg1,sum1},{avg2,sum2}....]=>sum(sum1...n)/sum(sum1...n/avg1...n)
372372
/// </summary>
373-
/// <param name="source">数据源</param>
374-
/// <param name="averagePropertyName">聚合函数average属性名</param>
375-
/// <param name="sumPropertyName">聚合函数sum属性名</param>
376-
/// <param name="resultType">平均值返回结果:int/int=double</param>
373+
/// <param name="source">数据源</param>
374+
/// <param name="averagePropertyName">聚合函数average属性名</param>
375+
/// <param name="sumPropertyName">聚合函数sum属性名</param>
376+
/// <param name="resultType">平均值返回结果:int/int=double</param>
377377
[ExcludeFromCodeCoverage]
378378
public static object AverageWithSum(this IQueryable source, string averagePropertyName, string sumPropertyName, Type resultType)
379379
{
@@ -394,11 +394,11 @@ public static object AverageWithSum(this IQueryable source, PropertyInfo average
394394
return AverageConstant(sum, count, resultType);
395395
}
396396
/// <summary>
397-
/// 获取平均数和 [{avg1,count1},{avg2,count2}....]=>sum(avg1...n*count1...n)/sum(count1...n)
397+
/// 获取平均数和 [{avg1,count1},{avg2,count2}....]=>sum(avg1...n*count1...n)/sum(count1...n)
398398
/// </summary>
399-
/// <param name="source">数据源</param>
400-
/// <param name="averageProperty">聚合函数average属性名</param>
401-
/// <param name="countProperty">聚合函数count属性名</param>
399+
/// <param name="source">数据源</param>
400+
/// <param name="averageProperty">聚合函数average属性名</param>
401+
/// <param name="countProperty">聚合函数count属性名</param>
402402
/// <returns></returns>
403403
private static object AverageSum(this IQueryable source, PropertyInfo averageProperty, PropertyInfo countProperty)
404404
{
@@ -411,7 +411,7 @@ private static object AverageSum(this IQueryable source, PropertyInfo averagePro
411411
MemberExpression averageMember = Expression.MakeMemberAccess(parameter, averageProperty);
412412
//o.count
413413
MemberExpression countMember = Expression.MakeMemberAccess(parameter, countProperty);
414-
//Convert(o.count,o.avg.GetType()) 必须要同类型才能计算
414+
//Convert(o.count,o.avg.GetType()) 必须要同类型才能计算
415415
var countConvertExpression = Expression.Convert(countMember, averageProperty.PropertyType);
416416
//o.avg*Convert(o.count,o.avg.GetType())
417417
var multiply = Expression.Multiply(averageMember, countConvertExpression);
@@ -434,11 +434,11 @@ private static object AverageSum(this IQueryable source, PropertyInfo averagePro
434434

435435
}
436436
/// <summary>
437-
/// 获取平均数个数 [{avg1,sum1},{avg2,sum2}....]=>sum(sum1..n)/sum(sum1...n/avg1...n)
437+
/// 获取平均数个数 [{avg1,sum1},{avg2,sum2}....]=>sum(sum1..n)/sum(sum1...n/avg1...n)
438438
/// </summary>
439-
/// <param name="source">数据源</param>
440-
/// <param name="averageProperty">聚合函数average属性名</param>
441-
/// <param name="sumProperty">聚合函数count属性名</param>
439+
/// <param name="source">数据源</param>
440+
/// <param name="averageProperty">聚合函数average属性名</param>
441+
/// <param name="sumProperty">聚合函数count属性名</param>
442442
/// <returns></returns>
443443
private static object AverageCount(this IQueryable source, PropertyInfo averageProperty, PropertyInfo sumProperty)
444444
{
@@ -451,7 +451,7 @@ private static object AverageCount(this IQueryable source, PropertyInfo averageP
451451
MemberExpression averageMember = Expression.MakeMemberAccess(parameter, averageProperty);
452452
//o.sum
453453
MemberExpression sumMember = Expression.MakeMemberAccess(parameter, sumProperty);
454-
//Convert(o.sum,o.avg.GetType()) 必须要同类型才能计算
454+
//Convert(o.sum,o.avg.GetType()) 必须要同类型才能计算
455455
var sumConvertExpression = Expression.Convert(sumMember, averageProperty.PropertyType);
456456
//Convert(o.sum,o.avg.GetType())/o.avg
457457
var divide = Expression.Divide(sumConvertExpression, averageMember);

0 commit comments

Comments
 (0)