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

У меня есть такая модель

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

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

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

Ответы [ 3 ]

10 голосов
/ 08 июня 2011

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

4 голосов
/ 08 июня 2011

вы можете указать платформе сущности, что база данных позаботится об этом свойстве, отредактировав это свойство в 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, что значение свойства будет вставленопо БД.

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

  1. Щелкните правой кнопкой мыши по файлу edmx, откройте его с помощью XML (текстового) редактора.

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

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

0 голосов
/ 06 июля 2012

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...