У меня есть 2 таблицы: таблица ордеров и таблица OrderActivity. Если в заказе не было предпринято никаких действий, в таблице OrderActivity не будет записи. В настоящее время я таблица OrderActivity отображенной в качестве дополнительной навигационной собственности на сущности заказа, и я обрабатывать обновления OrderActivity так:Разделение сущностей с необязательным отношением - (сначала код EF)
if (order.OrderActivity == null)
{
order.OrderActivity = new OrderActivity();
}
order.OrderActivity.LastAccessDateTime = DateTime.Now;
Можно ли закрепить это таким образом, что столбцы таблицы OrderActivity отображается в свойства на объекте «Заказы» и будет по умолчанию, если нет записи OrderActivity? Конфигурация для разделения объектов только работает, если записи существуют в обеих таблицах. Если это невозможно, то какова наилучшая практика для сглаживания дочернего объекта из моей модели домена? Моя цель - максимально упростить модель при взаимодействии с схемой БД, которой я не контролирую.
Вы хотите, чтобы ваш клиентский код не мог получить доступ к заказу.OrderActivity? –
В принципе да ... единственное, что order.OrderActivity предоставляет LastAccessDateTime, поэтому я хочу сгладить два объекта и обработать свойство LastAccessDateTime как часть заказа. Я знаю, что это возможно, сопоставляя сущность с разными таблицами, но могу ли я сделать это, если в DB – Eric
не будет записи OrderActivity. Вы можете сделать это, но всегда будут значения в OrderActivity с LastAccessDate, имеющими значение или null. см. мой ответ, если это поможет. –