У меня есть ситуация, когда я определил сущность в моей доменной модели, в которой я хотел бы предоставить один столбец идентификатора.
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} и предоставьте его в качестве значения Id.Затем я бы использовал пользовательский тип для обработки того, как эти значения объединяются при извлечении из БД и разбиваются на части при сохранении / выборе.
Я заметил, что метод "CompositeId" не позволяет использовать CustomType, как в случае сстандартный вызов "Id";но метод «Id» не дает возможности устанавливать несколько столбцов.Я видел примеры, когда люди использовали «Карту» для объединения двух столбцов, используя пользовательский тип, но не для значений идентификатора.
Я заметил, что «CompositeId» имеет перегрузку, которая может принимать пользовательский класс идентификации, ноЯ не уверен, как использовать его в этом сценарии.
CompositeId<OfferedProductIdentifier>(x => x.?)
Любая помощь будет принята с благодарностью.