Атрибут |
Назначение |
[Key] |
Указывает первичный ключ |
[Required] |
Обязательное поле (NOT NULL) |
[MaxLength(n)] |
Максимальная длина строки |
[MinLength(n)] |
Минимальная длина строки |
[StringLength(n)] |
Максимальная длина строки (альтернатива MaxLength) |
[Column("Name")] |
Явно задаёт имя столбца в БД |
[ForeignKey("NavProp")] |
Указывает внешний ключ для связи с навигационным свойством |
[InverseProperty("OtherNavProp")] |
Используется при двусмысленности в отношениях между двумя сущностями |
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] |
Автогенерация значения БД (обычно для Id ) |
[NotMapped] |
Исключает свойство из модели БД |
Команда |
Назначение |
dotnet tool install --global dotnet-ef |
Установка EF Core CLI-инструмента |
dotnet ef |
Проверка работоспособности EF CLI |
dotnet ef migrations add <ИмяМиграции> |
Создание новой миграции по изменениям в модели |
dotnet ef database update |
Применение всех миграций к базе данных |
dotnet ef database update <ИмяМиграции> |
Откат или накатывание до указанной миграции |
dotnet ef migrations remove |
Удаление последней миграции (если ещё не применена к базе) |
dotnet ef migrations list |
Список всех миграций проекта |
dotnet ef migrations script |
Генерация SQL-скрипта для всех миграций |
dotnet ef migrations script <От> <До> |
SQL-скрипт миграции от одной точки к другой |
dotnet ef dbcontext info |
Отображение информации о текущем DbContext |
dotnet ef dbcontext list |
Список всех DbContext в проекте |
dotnet ef database drop |
Удаление базы данных (с подтверждением) |
dotnet ef database update 0 |
Полный откат всех миграций (база становится пустой) |
Для работы с подходом DataBase-First можно использовать такую команду
dotnet ef dbcontext scaffold "Data Source=your.db" Microsoft.EntityFrameworkCore.Sqlite -o Models
Параметр |
Описание |
--force |
Перезаписывает существующие классы |
--schemas |
Указывает, какие схемы включать |
--tables |
Указывает, какие таблицы включать |
--context |
Имя класса контекста |
--data-annotations |
Генерировать с аннотациями вместо Fluent API |
--no-onconfiguring |
Не включать OnConfiguring() с строкой подключения |