src/02_Data/Data.Core/Sharding/Providers/QuarterShardingPolicyProvider.cs
(完整代码) 1KBusing System;
using Mkh.Data.Abstractions.Descriptors;
using Mkh.Data.Abstractions.Sharding;
namespace Mkh.Data.Core.Sharding.Providers
{
/// <summary>
/// 季度分表策略提供器
/// </summary>
internal class QuarterShardingPolicyProvider : IShardingPolicyProvider
{
public string ResolveTableName(IEntityDescriptor descriptor, DateTime dateTime, bool next = false)
{
var year = dateTime.Year;
var month = dateTime.Month;
var quarter = 1;
if (month >= 1 && month < 4)
quarter = 1;
else if (month >= 4 && month < 7)
quarter = 2;
else if (month >= 7 && month < 10)
quarter = 3;
else if (month >= 10)
quarter = 4;
if (next)
{
if (quarter == 4)
{
year++;
quarter = 1;
}
else
{
quarter++;
}
}
return $"{descriptor.TableName}_{year}{quarter}";
}
}
}
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
