Я тоже ударил эту загвоздку и решил использовать методы расширения. Например:
public static class PersonExtensions
{
public static int GetAge(this Person person)
{
// your CalculateAge logic (simplified)
return (DateTime.Now - person.DateOfBirth).TotalDays / 365;
}
}
Затем в вашем потребителе DataServices вы можете сделать:
person.GetAge()
Да, это не так хорошо, как person.Age
, но вы также не добавляете ненужные столбцы базы данных.
Обновление:
Другой альтернативой является расширение класса Person, содержащегося в справочнике услуг. Это можно сделать, создав частичный класс Person с тем же пространством имен, что и у справочного класса Person. Например:
public partial class Person
{
public string int Age
{
get { return (DateTime.Now - this.DateOfBirth).TotalDays / 365; }
}
}
Тогда модель DataServices Person будет иметь свойство Age!