Как обрабатывать объекты значений, основанные на времени, в 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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