Как мне обновить базу данных с помощью команды Add-Migration on Nuget? - PullRequest
1 голос
/ 25 мая 2020

Каждый раз, когда я пытаюсь использовать консоль Nuget Package Console для выполнения Scaffold-DbContext, я получаю это исключение и не могу его передать. Пожалуйста, помогите мне решить эту проблему.

Update-Database
& : File C:\Users\gcobanim\source\repos\eNtsaRegistrationTraining\packages\Microsoft.EntityFrameworkCore.Tools.3.1.3\tools\init.ps1 cannot be loaded because its operation is blocked by software restriction policies, such as 
those created by using Group Policy.
At line:1 char:45
+ ... rgs+=$_}; & 'C:\Users\gcobanim\source\repos\eNtsaRegistrationTraining ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
No pending explicit migrations.
Unable to update database to match the current model because there are pending changes and automatic migration is disabled. Either write the pending model changes to a code-based migration or enable automatic migration. Set DbMigrationsConfiguration.AutomaticMigrationsEnabled to true to enable automatic migration.
You can use the Add-Migration command to write the pending model changes to a code-based migration.

введите описание изображения здесь

// Объекты класса Add-Migration.

namespace eNtsaRegistrationTraining.Migrations
{
    using System;
    using System.Data.Entity.Migrations;

    public partial class eNtsaRegistration2020 : DbMigration
    {
        public override void Up()
        {
        }

        public override void Down()
        {
        }
    }
}

Ответы [ 2 ]

1 голос
/ 25 мая 2020

Сначала вам нужно сделать Add-Migration -> Это что-то вроде фиксации. Пример: Add-Migration AddedNewFieldInTablePerson Позже Вам необходимо использовать: Update-Database

0 голосов
/ 26 мая 2020

Эта информация меняет все. Команда Update-Database, которую вы используете в случае кода first db. Чтобы получить контекст базы данных из существующей базы данных, вам необходимо использовать эту полную команду:

Scaffold-DbContext [-Connection] [-Provider] [-OutputDir] [-Context] [-Schemas>] [-Tables>] [-DataAnnotations] [-Force] [-Project] [-StartupProject] []

Пример: PM> Scaffold-DbContext "Server =. \ SQLExpress; Database = SchoolDB; Trusted_Connection = True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

Если соединение настроено правильно, команда должна создать для вас контекст базы данных и модели.

Хороший пример использования EF для выполнения этой операции

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