Как обрабатывать объекты значений, основанные на времени, в DDD при извлечении из постоянного хранилища?C#

Место общения программистов C#
Anonymous
Как обрабатывать объекты значений, основанные на времени, в DDD при извлечении из постоянного хранилища?

Сообщение Anonymous »

У меня есть простой объект значения в моей сущности под названием StartDate. У него простое правило проверки: «StartDate» не может быть пропущено.

Код: Выделить всё

public DateTime Value { get; }

public StartDate(DateTime value)
{

if (value < DateTime.UtcNow)
throw new StartDateCannotBePast(value);

Value = value;
}
Проблема в том, что при получении объекта из базы данных «StartDate» уже находится в прошлом.
У меня возникла простая идея. Просто создайте объект значения, используя фабричный метод, не проверяя его.
Тогда в нашей конфигурации мы могли бы сделать что-то подобное

Код: Выделить всё

builder.Property(e => e.StartDate).HasConversion(
p => p.Value,
p => ScheduleItemStartDate.CreateWithoutValidation(p));
К сожалению, это позволило бы нам создать объект значения в нашем домене без проверки.
Итак, вопрос в следующем:
Должен ли я быть прагматичным? и просто используйте этот фабричный метод или есть более правильный способ добиться этого

Подробнее здесь: https://stackoverflow.com/questions/790 ... sistent-st

Вернуться в «C#»