diff --git a/src/Cnblogs.Architecture.Ddd.Cqrs.Abstractions/Cnblogs.Architecture.Ddd.Cqrs.Abstractions.csproj b/src/Cnblogs.Architecture.Ddd.Cqrs.Abstractions/Cnblogs.Architecture.Ddd.Cqrs.Abstractions.csproj
index e51bb1b..2e7f232 100644
--- a/src/Cnblogs.Architecture.Ddd.Cqrs.Abstractions/Cnblogs.Architecture.Ddd.Cqrs.Abstractions.csproj
+++ b/src/Cnblogs.Architecture.Ddd.Cqrs.Abstractions/Cnblogs.Architecture.Ddd.Cqrs.Abstractions.csproj
@@ -20,13 +20,13 @@
-
-
+
+
-
-
+
+
diff --git a/src/Cnblogs.Architecture.Ddd.Cqrs.Abstractions/PageableQueryHandlerBase.cs b/src/Cnblogs.Architecture.Ddd.Cqrs.Abstractions/PageableQueryHandlerBase.cs
index a6bf8a0..9a9ee57 100644
--- a/src/Cnblogs.Architecture.Ddd.Cqrs.Abstractions/PageableQueryHandlerBase.cs
+++ b/src/Cnblogs.Architecture.Ddd.Cqrs.Abstractions/PageableQueryHandlerBase.cs
@@ -32,7 +32,7 @@ public async Task> Handle(TQuery request, CancellationToken can
if (request.PagingParams.PageSize == 0 || totalCount == 0)
{
// need count only or no available item, short circuit here.
- return new PagedList(Array.Empty(), request.PagingParams, totalCount);
+ return new PagedList([], request.PagingParams, totalCount);
}
ordered = ordered.Paging(request.PagingParams);
@@ -95,4 +95,4 @@ protected virtual IQueryable ProjectToView(TQuery query, IQueryableProjected .
/// The query result.
protected abstract Task> ToListAsync(TQuery query, IQueryable queryable);
-}
\ No newline at end of file
+}
diff --git a/src/Cnblogs.Architecture.Ddd.Cqrs.ServiceAgent/Cnblogs.Architecture.Ddd.Cqrs.ServiceAgent.csproj b/src/Cnblogs.Architecture.Ddd.Cqrs.ServiceAgent/Cnblogs.Architecture.Ddd.Cqrs.ServiceAgent.csproj
index d96fb77..6fecd92 100644
--- a/src/Cnblogs.Architecture.Ddd.Cqrs.ServiceAgent/Cnblogs.Architecture.Ddd.Cqrs.ServiceAgent.csproj
+++ b/src/Cnblogs.Architecture.Ddd.Cqrs.ServiceAgent/Cnblogs.Architecture.Ddd.Cqrs.ServiceAgent.csproj
@@ -12,11 +12,11 @@
-
+
-
+
diff --git a/src/Cnblogs.Architecture.Ddd.Infrastructure.Abstractions/OrderBySegmentConfig.cs b/src/Cnblogs.Architecture.Ddd.Infrastructure.Abstractions/OrderBySegmentConfig.cs
index 55f8fad..254984c 100644
--- a/src/Cnblogs.Architecture.Ddd.Infrastructure.Abstractions/OrderBySegmentConfig.cs
+++ b/src/Cnblogs.Architecture.Ddd.Infrastructure.Abstractions/OrderBySegmentConfig.cs
@@ -1,4 +1,5 @@
-using System.Diagnostics.CodeAnalysis;
+using System.Collections.Concurrent;
+using System.Diagnostics.CodeAnalysis;
using System.Linq.Expressions;
namespace Cnblogs.Architecture.Ddd.Infrastructure.Abstractions;
@@ -8,7 +9,7 @@ namespace Cnblogs.Architecture.Ddd.Infrastructure.Abstractions;
///
public static class OrderBySegmentConfig
{
- private static readonly Dictionary> Cache = new();
+ private static readonly ConcurrentDictionary> Cache = new();
///
/// 注册新的可排序列。
@@ -24,7 +25,7 @@ public static void RegisterSortableProperty(
var sourceType = typeof(TSource);
if (Cache.ContainsKey(sourceType) == false)
{
- Cache[sourceType] = new Dictionary(StringComparer.OrdinalIgnoreCase);
+ Cache[sourceType] = new ConcurrentDictionary(StringComparer.OrdinalIgnoreCase);
}
Cache[sourceType][name] = new OrderBySegment(false, exp);
@@ -73,4 +74,24 @@ public static bool TryParseOrderBySegments(
return segments.Count > 0;
}
-}
\ No newline at end of file
+}
+
+///
+/// 管理可排序列的映射。
+///
+/// The entity to config.
+public static class OrderBySegmentConfig
+{
+ ///
+ /// 注册新的可排序列。
+ ///
+ /// 列名。
+ /// 属性表达式。
+ /// 属性类型。
+ public static void RegisterSortableProperty(
+ string name,
+ Expression> exp)
+ {
+ OrderBySegmentConfig.RegisterSortableProperty(name, exp);
+ }
+}
diff --git a/src/Cnblogs.Architecture.Ddd.Infrastructure.CacheProviders.InMemory/Cnblogs.Architecture.Ddd.Infrastructure.CacheProviders.InMemory.csproj b/src/Cnblogs.Architecture.Ddd.Infrastructure.CacheProviders.InMemory/Cnblogs.Architecture.Ddd.Infrastructure.CacheProviders.InMemory.csproj
index 4354146..fc75c7b 100644
--- a/src/Cnblogs.Architecture.Ddd.Infrastructure.CacheProviders.InMemory/Cnblogs.Architecture.Ddd.Infrastructure.CacheProviders.InMemory.csproj
+++ b/src/Cnblogs.Architecture.Ddd.Infrastructure.CacheProviders.InMemory/Cnblogs.Architecture.Ddd.Infrastructure.CacheProviders.InMemory.csproj
@@ -12,11 +12,11 @@
-
+
-
+
diff --git a/src/Cnblogs.Architecture.Ddd.Infrastructure.CacheProviders.Redis/Cnblogs.Architecture.Ddd.Infrastructure.CacheProviders.Redis.csproj b/src/Cnblogs.Architecture.Ddd.Infrastructure.CacheProviders.Redis/Cnblogs.Architecture.Ddd.Infrastructure.CacheProviders.Redis.csproj
index 9f9c587..f5128f9 100644
--- a/src/Cnblogs.Architecture.Ddd.Infrastructure.CacheProviders.Redis/Cnblogs.Architecture.Ddd.Infrastructure.CacheProviders.Redis.csproj
+++ b/src/Cnblogs.Architecture.Ddd.Infrastructure.CacheProviders.Redis/Cnblogs.Architecture.Ddd.Infrastructure.CacheProviders.Redis.csproj
@@ -12,7 +12,7 @@
-
+
diff --git a/src/Cnblogs.Architecture.Ddd.Infrastructure.Dapper/Cnblogs.Architecture.Ddd.Infrastructure.Dapper.csproj b/src/Cnblogs.Architecture.Ddd.Infrastructure.Dapper/Cnblogs.Architecture.Ddd.Infrastructure.Dapper.csproj
index d0bdaba..362d0c9 100644
--- a/src/Cnblogs.Architecture.Ddd.Infrastructure.Dapper/Cnblogs.Architecture.Ddd.Infrastructure.Dapper.csproj
+++ b/src/Cnblogs.Architecture.Ddd.Infrastructure.Dapper/Cnblogs.Architecture.Ddd.Infrastructure.Dapper.csproj
@@ -13,11 +13,11 @@
-
+
-
+
diff --git a/src/Cnblogs.Architecture.Ddd.Infrastructure.EntityFramework/Cnblogs.Architecture.Ddd.Infrastructure.EntityFramework.csproj b/src/Cnblogs.Architecture.Ddd.Infrastructure.EntityFramework/Cnblogs.Architecture.Ddd.Infrastructure.EntityFramework.csproj
index 112d612..38382ab 100644
--- a/src/Cnblogs.Architecture.Ddd.Infrastructure.EntityFramework/Cnblogs.Architecture.Ddd.Infrastructure.EntityFramework.csproj
+++ b/src/Cnblogs.Architecture.Ddd.Infrastructure.EntityFramework/Cnblogs.Architecture.Ddd.Infrastructure.EntityFramework.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/src/Cnblogs.Architecture.Ddd.Infrastructure.FileProviders.AliyunOss/Cnblogs.Architecture.Ddd.Infrastructure.FileProviders.AliyunOss.csproj b/src/Cnblogs.Architecture.Ddd.Infrastructure.FileProviders.AliyunOss/Cnblogs.Architecture.Ddd.Infrastructure.FileProviders.AliyunOss.csproj
index 93f0ce2..2652d19 100644
--- a/src/Cnblogs.Architecture.Ddd.Infrastructure.FileProviders.AliyunOss/Cnblogs.Architecture.Ddd.Infrastructure.FileProviders.AliyunOss.csproj
+++ b/src/Cnblogs.Architecture.Ddd.Infrastructure.FileProviders.AliyunOss/Cnblogs.Architecture.Ddd.Infrastructure.FileProviders.AliyunOss.csproj
@@ -1,7 +1,7 @@
-
+
diff --git a/test/Cnblogs.Architecture.IntegrationTests/Cnblogs.Architecture.IntegrationTests.csproj b/test/Cnblogs.Architecture.IntegrationTests/Cnblogs.Architecture.IntegrationTests.csproj
index 9ea8bc3..0fd34df 100644
--- a/test/Cnblogs.Architecture.IntegrationTests/Cnblogs.Architecture.IntegrationTests.csproj
+++ b/test/Cnblogs.Architecture.IntegrationTests/Cnblogs.Architecture.IntegrationTests.csproj
@@ -1,7 +1,7 @@
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
@@ -9,8 +9,8 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
-
+
+
diff --git a/test/Cnblogs.Architecture.TestShared/Cnblogs.Architecture.TestShared.csproj b/test/Cnblogs.Architecture.TestShared/Cnblogs.Architecture.TestShared.csproj
index 438360a..a4291d1 100644
--- a/test/Cnblogs.Architecture.TestShared/Cnblogs.Architecture.TestShared.csproj
+++ b/test/Cnblogs.Architecture.TestShared/Cnblogs.Architecture.TestShared.csproj
@@ -7,10 +7,10 @@
-
+
-
+
diff --git a/test/Cnblogs.Architecture.UnitTests/Cnblogs.Architecture.UnitTests.csproj b/test/Cnblogs.Architecture.UnitTests/Cnblogs.Architecture.UnitTests.csproj
index 477a915..ce66b30 100644
--- a/test/Cnblogs.Architecture.UnitTests/Cnblogs.Architecture.UnitTests.csproj
+++ b/test/Cnblogs.Architecture.UnitTests/Cnblogs.Architecture.UnitTests.csproj
@@ -1,11 +1,11 @@
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all