Я генерирую тестовые/семенные данные для проекта с использованием Autopoco.Назначение случайных значений из заданного списка для семенных объектов в Autopoco
Каждому участнику abject присваивается случайная дата в течение летнего времени (DefaultRandomDateSource), и я также хочу, чтобы объект собрания был назначен случайным заголовком из предопределенного списка (MeetingTitleSource).
Проблема, которую я получаю, заключается в том, что название собрания не применяется в случайном порядке времени. Т.е.: первые две недели - это «Перфронманс-Сессия», затем следующие две недели - это «Заседание по дизайну» и т. Д. И т. Д. Я хочу, чтобы заголовки собраний были назначены совершенно случайным образом.
Может ли кто-нибудь помочь?
Вот мой код, который создает данные семенных
//Configure the default properties
var meetings = AutoPocoContainer.Configure(x =>
{
x.Conventions(c => { c.UseDefaultConventions(); });
x.Include<Meeting>()
.Setup(c => c.StartDate).Use<DefaultRandomDateSource>
(DateTime.Parse("21/Mar/2013"),
DateTime.Parse("21/Mar/2012"))
.Setup(c => c.EndDate).Use<MeetingEndDateSource>(0, 8)
.Setup(c => c.Title).Use<MeetingTitleSource>()
});
_meetings = meetings.CreateSession().List<Meeting>(MeetingRecords).Get();
Здесь представлен исходный defaultdate
public class DefaultRandomDateSource : DatasourceBase<DateTime>
{
private DateTime _MaxDate { get; set; }
private DateTime _MinDate { get; set; }
private Random _random = new Random(1337);
public DefaultRandomDateSource(DateTime MaxDate, DateTime MinDate)
{
_MaxDate = MaxDate;
_MinDate = MinDate;
}
public override DateTime Next(IGenerationContext context)
{
var tspan = _MaxDate - _MinDate;
var rndSpan = new TimeSpan(0, _random.Next(0, (int)tspan.TotalMinutes), 0);
return _MinDate + rndSpan;
}
}
Вот MeetingTitle Источник
public class MeetingTitleSource : DatasourceBase<string>
{
private Random mRandom = new Random(1337);
public override string Next(IGenerationContext context)
{
return MeetingNames[mRandom.Next(0, MeetingNames.Length)];
}
private static string[] MeetingNames = new String[]{
"Design meeting",
"Strategy Meeting",
"Performance review",
"Appraisal",
"Disciplinary",
"Project review",
"Client Meetings",
"Budget Meeting",
"Financial Update",
"CompStat",
"Project Update"
};
}
Почему вы используете одно и то же начальное значение? В соответствии с [docs] (http://msdn.microsoft.com/en-us/library/ctssatww.aspx) 'Предоставление одинакового значения семени различным объектам Random приводит к тому, что каждый экземпляр создает идентичные последовательности случайных чисел.' –
Я подозревал, что это семя, но я не могу понять, как генерировать новое начальное значение каждый раз, когда вызывается код. Я уже много сделал. Просто надеясь, что что-то с немного более знакомым с тем, как работает autopoco, может указать мне на правильный путь. – MrBliz