У меня есть ситуация, когда я определил объект в своей модели домена, в котором я хотел бы открыть один столбец идентификатора.
public class OfferedProduct
{
public virtual string Id {get; set;}
//other properties
}
Устаревшая таблица базы данных, с которой это будет отображаться,
CREATE TABLE ProductGrouping
MemberNumber INT NOT NULL,
GroupId CHAR NOT NULL,
...
Я не хочу ставить под угрозу модель предметной области, вводя два свойства и сопоставляя их с помощью конструкции "CompositeId".
CompositeId().KeyProperty(x => x.MemberNumber).KeyProperty(x => x.GroupId)
В идеале я хочу объединить два значения в форме {MemberNumber}{GroupId} и представить это как значение идентификатора. Затем я бы использовал пользовательский тип, чтобы обрабатывать, как эти значения объединяются при извлечении из БД и разбиваются при сохранении/выборе.
Я заметил, что метод "CompositeId" не допускает customType, как при стандартном вызове "Id"; но метод «Id» не дает возможности установить несколько столбцов. Я видел примеры, когда люди использовали «Карту» для объединения двух столбцов с использованием пользовательского типа, но не для значений идентификаторов.
Я заметил, что «CompositeId» имеет перегрузку, которая может принимать настраиваемый класс идентификации, но я не знаю, как его использовать в этом сценарии.
CompositeId<OfferedProductIdentifier>(x => x.?)
Любая помощь будет принята с благодарностью.