我正在使用出色的 .NET 库AutoPoco来创建测试和种子数据。
在我的模型中,我有 2 个日期属性,StartDate 和 EndDate。
我希望 EndDate 在开始日期后 3 小时。
我在下面为 autopoco 创建了一个自定义数据源,它返回一个介于最小日期和最大日期之间的随机日期时间
class DefaultRandomDateSource : DatasourceBase<DateTime>
{
private DateTime _MaxDate { get; set; }
private DateTime _MinDate { get; set; }
private Random _random { get; set; }
public DefaultRandomDateSource(DateTime MaxDate, DateTime MinDate)
{
_MaxDate = MaxDate;
_MinDate = MinDate;
}
public override DateTime Next(IGenerationSession session)
{
var tspan = _MaxDate - _MinDate;
var rndSpan = new TimeSpan(0, _random.Next(0, (int) tspan.TotalMinutes), 0);
return _MinDate + rndSpan;
}
}
但是在 AutoPoco 的配置中,我怎样才能让我的 EndDate 是在自动生成的开始日期后 3 小时?
这是autopoco配置
IGenerationSessionFactory factory = AutoPocoContainer.Configure(x =>
{
x.Conventions(c => { c.UseDefaultConventions(); });
x.AddFromAssemblyContainingType<Meeting>();
x.Include<Meeting>()
.Setup((c => c.CreatedBy)).Use<FirstNameSource>()
.Setup(c => c.StartDate).Use<DefaultRandomDateSource>(DateTime.Parse("21/05/2011"), DateTime.Parse("21/05/2012"));
});