Мне интересно, что такое «хорошая практика» для установки свойств, которые не отображаются в базе данных. Я работаю с EF Core, но это действительно больше вопрос дизайна. Представьте, что у меня есть следующий класс:
class User
{
public string FirstName { get; set; }
public string LastName { get; set; }
[NotMapped]
public string Name { get; set; }
...
}
Где Name
будет вычислено после извлечения FirstName
и LastName
из базы данных. Я пытаюсь предотвратить вызов метода получения для Name
без предварительной установки свойства.
Я знаю, что мог бы сделать что-то вроде
class User
{
...
private string _name = null;
[NotMapped]
public string Name {
get
{
if (_name == null)
_name = $"{FirstName} {LastName}";
return _name;
}
}
...
}
Но это становится действительно беспорядочным, когда нужно несколько свойств быть установленным таким образом, и когда они получаются более сложным способом, чем эта однострочная.
На данный момент я написал функцию SetAllProperties()
, которая устанавливает все свойства NotMapped, однако я не считаю это хорошим решение, поскольку существует риск забыть
- обновить его при добавлении новых свойств NotMapped
- чтобы вызвать его перед доступом к свойствам
Is интерфейс есть способ go? Как это должно выглядеть? Или есть какой-то "стандартный" способ борьбы с этим? Я не смог найти ничего полезного в этом топи c.