Дата Созданный конкретный пример, который меня интересует, но есть другие бит данных, которые попадают в ту же категорию: данные, которые вы хотите захватить в отношении любого неопределенно важного объекта.Дата создания - должно ли это значение быть установлено в BL или DAL?
Где лучше всего это сделать: бизнес-логика (BL) или уровень доступа к данным (DAL)?
До сих пор я полагался на SQL Server getdate()
для заполнения даты, созданной для меня при вставке в таблицу, но теперь я начинаю задаваться вопросом, должен ли я делать это больше в BL.
FYI - это в основном было в веб-системах, где вы создаете объект в BL (на основе пользовательского ввода) и запускаете его в DAL - это не похоже на то, что я хотел обратиться к объекту в памяти целых веков (поэтому наличие свойства «дата создания» на объекте для использования в BL при создании объекта не было проблемой).
Возможно, есть третий вариант - это происходит после того, как я прочитал ответ Marr75, что запись его дважды может быть полезна в некоторых сенариях (один раз в обоих местах). Вы получили бы выгоду от согласованной даты/времени в слое данных, но вы все равно должны иметь значение, приведенное в BL, чтобы ссылаться на него, - я думаю, что я буду зависеть от ваших вариантов использования. Однако этот вариант не лишен какого-либо риска, но люди могут начать использовать неправильную дату для неправильной вещи.
Я согласен с вашим мнением - но, безусловно, одна из причин, по которой эта ответственность лежит на BL, заключается в том, что у вас есть правила, которые вы хотите применить, например, не имеющие нулей. Был ли случай, когда BL не заботился, но база данных? –