Entity Framework - значение по умолчанию для свойства с использованием аннотаций данных

У меня есть модель, подобная этой

public class MyModel
{
    public int MyModelId { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public string Title { get; set; }
}

Мне было интересно, есть ли способ, используя Data Annotations, установить значение свойства - например Title - по умолчанию - другое значение свойства, то есть Name. Что-то вроде:

if(MyModel.Title == "") MyModel.Title = MyModel.Name;

Ответ 1

Если вы хотите, чтобы значение по умолчанию устанавливало его в конструкторе по умолчанию (без параметров). Нет необходимости иметь аннотацию данных для чего-то, что вы можете сделать напрямую.

Ответ 2

вы можете указать структуру сущности, что база данных позаботится об этом свойстве, отредактировав это свойство в SSDL файла edmx.

Сначала

<Property Name="CompanyName" Type="nvarchar" Nullable="false" MaxLength="40" />

мы изменим его на

<Property Name="CompanyName" Type="nvarchar" Nullable="false" MaxLength="40" StoreGeneratedPattern="Computed" />

установив storeGeneratedPattern = "Computed" , мы можем сказать EF, что значение свойства будет вставлено DB.

Для редактирования SSDL

  • Щелкните правой кнопкой мыши файл edmx, откройте редактор XML (текст).

2.Ctrl + F имя свойства и просто измените это свойство

Я не знаю, есть ли способ сделать с аннотациями данных.

Ответ 3

Невозможно установить атрибут атрибута как функцию в целом, вы получите сообщение об ошибке:

"Аргумент атрибута должен быть константным выражением, выражением typeof или выражением создания массива типа параметра атрибута"