テストとシード データの作成には、優れた .NET ライブラリAutoPocoを使用しています。
私のモデルには、StartDate と EndDate の 2 つの日付プロパティがあります。
EndDate を開始日の 3 時間後にしたい。
以下のautopoco用のカスタムデータソースを作成しました。これは、最小日付と最大日付の間のランダムなDatetimeを返します
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 の構成では、自動生成された開始日から 3 時間後に EndDate を取得するにはどうすればよいですか?
これが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"));
});