Предположим, у меня есть таблица контактов в моей базе данных со столбцом PhoneNumber, который представляет собой строку, например, "+44123456789".
В моей доменной модели у меня обычно было бы:
public class Contact {
public int Id { get; set; }
public string PhoneNumber { get; set; }
}
Пока что все обычное :) Но теперь я хочу связать кучу не-DB логики с моим PhoneNumber.
Я могу сделать объект PhoneNumber для хранения всей этой логики и сделать вместо этого мое свойство PhoneNumber
объектом Number
:
public class Contact {
public int Id { get; set; }
public Number PhoneNumber { get; set; }
}
public class Number{
public string Number { get; set; }
//... other logic, getter wrappers, etc. ...
}
Но EF будет интерпретировать это как «Число - это новый тип с отдельной таблицей, и объект« Контакт »должен иметь FK для строки в таблице« Число »». Что я не хочу - я хочу сохранить модель БД такой же. Я могу просто сделать преобразование вручную, в моем C #, но в итоге у меня будет много шаблонов.
Я бы хотел сказать EF: «Я знаю, что это похоже на объект, но поверьте мне, это примитив. Когда вы храните его в базе данных, это на самом деле примитивный столбец. Пожалуйста, преобразуйте его в и из примитива соответствующим образом (предоставляется классом Number, если необходимо) всякий раз, когда вы взаимодействуете с базой данных.
Существует ли эта концепция в EF?
Если да, то какой правильный критерий поиска для поиска документации по этому вопросу?
Заинтересован в знании EF или EFCore.