提交 c7abd01f 编写于 作者: 麦壳饼's avatar 麦壳饼

fix #970 报”按月分表时间至少大于当前时间一个月“错误

上级 6a9471cf
......@@ -30,30 +30,24 @@ namespace IoTSharp.Data.TimeSeries
{
case TelemetryStorage.Sharding:
ShardingByDateMode settingsShardingByDateMode = settings.ShardingByDateMode;
var sbt = DateTime.Now.Subtract(settings.ShardingBeginTime);
var _sharding = services.AddShardingDbContext<ShardingDbContext>();
_sharding.UseRouteConfig(o =>
{
switch (settingsShardingByDateMode)
{
case ShardingByDateMode.PerMinute:
if (sbt.TotalMinutes < 5) throw new ArgumentException($"按分钟分表时间至少大于当前时间五分钟。");
o.AddShardingTableRoute<TelemetryDataMinuteRoute>();
break;
case ShardingByDateMode.PerHour:
if (sbt.TotalHours < 1) throw new ArgumentException($"按小时分表时间至少大于当前时间一小时。");
o.AddShardingTableRoute<TelemetryDataHourRoute>();
break;
case ShardingByDateMode.PerDay:
if (sbt.TotalDays < 1) throw new ArgumentException($"按日分表时间至少大于当前时间一天。");
o.AddShardingTableRoute<TelemetryDataDayRoute>();
break;
case ShardingByDateMode.PerMonth:
if (sbt.TotalDays < DateTime.Now.Subtract(DateTime.Now.Date.AddDays(-DateTime.Now.Day)).TotalDays) throw new ArgumentException($"按月分表时间至少大于当前时间一个月。");
o.AddShardingTableRoute<TelemetryDataMonthRoute>();
break;
case ShardingByDateMode.PerYear:
if (sbt.TotalDays < DateTime.Now.Subtract(DateTime.Now.Date.AddMonths(-DateTime.Now.Month)).TotalDays) throw new ArgumentException($"按月分表时间至少大于当前时间一个月。");
o.AddShardingTableRoute<TelemetryDataYearRoute>();
break;
default: throw new InvalidOperationException($"unknown sharding mode:{settingsShardingByDateMode}");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册