Каков первый подход к коду для установки значения по умолчанию для столбца базы данных в ядре инфраструктуры сущностей?
Попытка № 1: Использование атрибута DefaultValue
в модели не работает
[DefaultValue(true)]
public bool ShowInReports { get; set; }
После выполнения миграции dotnet ef версии 5.0.1 генерирует следующий код:
migrationBuilder.AddColumn<bool>(
name: "ShowInReports",
table: "ParametersUsed",
nullable: false,
defaultValue: false);
Попытка №2: попытка определить значение в OnModelCreating
не распознает функцию:
modelBuilder.Entity<TableName>()
.Property(t=> t.ShowInReports)
.HasDefaultValue(true);
Ошибка: 'PropertyBuilder<bool>' does not contain a definition for 'HasDefaultValue' and no accessible extension method 'HasDefaultValue' accepting a first argument of type 'PropertyBuilder<bool>' could be found (are you missing a using directive or an assembly reference?)
Только что понял, что для Попытки №2 нужен реляционный пакет. Спасибо @Ривен
Любая идея, как заставить работать атрибут DefaultValue без использования HasDefaultValue в OnModelCreating.
Репост моего комментария, так как он, кажется, тоже является ответом.
Вам нужно добавить пакет Microsoft.EntityFrameworkCore.Relational, чтобы был доступен метод расширения HasDefaultValue
.
Что касается атрибута DefaultValue
, я не уверен, что его можно использовать с EF Core или с EF в целом. Хотя я могу ошибаться.
общественное логическое значение ShowInReports { получить; набор; } = правда; Попробуй это.
Проверено, не работает...
Вы добавили пакет Microsoft.EntityFrameworkCore.Relational?