Он заменяет сложные типы с возможностью установить их как отношение 1-1 / w ToTable при автоматической загрузке.Это будет использовать один и тот же PK в обеих таблицах, так же как 1-1.
Точка разделения таблицы будет состоять в том, что вам нужна нормализованная объектная модель, а структура таблицы - нет.Это подходит для сценариев, где у вас есть существующая структура таблицы и вы хотите разделить связанные части этих данных на дочерние объекты, связанные с основным объектом.С опцией ToTable это будет похоже на отношение 1-1, но автоматически загружается.Однако при рассмотрении причин использования отношения 1-1 я бы посчитал этот вариант плохим выбором.
Распространенные причины использования его в нормальных отношениях 1-1 включают:
- Разделение дорогих для загрузки, редко используемых данных.(images, binary, memo)
- Инкапсуляция данных, относящихся к одному приложению из общей сущности.то есть, если у меня есть «Клиент», который используется системой выставления счетов против CRM, у меня могут быть «CustomerBillingData» и «CustomerCRMData», принадлежащие «Клиенту», а не унаследованный BillingCustomer / CRMCustomer.Так как есть «одиночный» клиент, который может обслуживать одну или обе системы.Биллинг не заботится о данных CRM, CRM не заботится о биллинге.Если все данные в «Заказчике», то обе системы потенциально должны быть обновлены, и я не могу полагаться на ограничения, когда данные являются необязательными для другой системы.Используя композицию, я могу применить требуемые данные для конкретной системы.
Ни в одном из этих случаев я не хотел бы использовать разбиение таблиц или что-либо, что автоматически загружается, поэтому Owned Types / w ToTable будетне заменять 1-1 отношения на любой отрезок.По сути, это более строгая версия сложных типов, я бы сказал, что она строго используется для организации сущностей.Не то, чтобы я признался, что хочу использовать очень часто.