Значение по умолчанию в модели mvc с использованием аннотации данных
Можно ли использовать аннотации данных для добавления значения по умолчанию для свойства int
что-то вроде
[DefaultValue=1]
public int MyId {get; set;}
Ответы
Ответ 1
Попробуйте это - установите значение по умолчанию в конструкторе:
public class YOURMODEL
{
public int MyId { get; set; }
public YOURMODEL()
{
MyId = 1;
}
}
Позднее добавление другим пользователем: С С# 6.0 (2015) этот простой синтаксис разрешен:
public class YOURMODEL
{
public int MyId { get; set; } = 1;
}
Ответ 2
Вы можете сделать это только с помощью конструктора класса. Ваш код должен выглядеть следующим образом:
public class MyModel
{
public MyModel()
{
MyId = 1;
}
public int MyId {get; set;}
}
Это приведет к тому, что свойство MyId
будет установлено на 1
всякий раз, когда будет создан новый экземпляр класса. Однако, если привязка к модели обнаруживает, что пользователь указал значение для MyId
, он перезапишет значение по умолчанию с помощью указанного пользователем.
Ответ 3
Конечно, метод конструктора корректен (согласно @Nilesh), но это решение не касается каких-либо устаревших данных, которые вы, возможно, уже создали в своей базе данных.
Вы также можете обновить устаревшие данные, создав миграцию и затем соответствующим образом настроив метод AddColumn...
AddColumn("dbo.Orgs", "MyId", c => c.Int(nullable: false));
изменяется на:
AddColumn("dbo.Orgs", "MyId", c => c.Int(nullable: false, defaultValue: 1));
Обратите внимание, что это также создаст триггер базы данных, который автоматически обновит значение по умолчанию для INSERT, поэтому вам не требуется технически необходимый метод конструктора из перспективы базы данных, но установка значения с помощью конструктора по-прежнему является лучшей практикой.
Ответ 4
Используйте [DefaultValue(false)]
.
(Ссылка)