Entity Framework Core 도구 참조-.NET Core CLIEntity Framework Core tools reference - .NET Core CLI

Entity Framework Core에 대 한 CLI (명령줄 인터페이스) 도구는 디자인 타임 개발 작업을 수행 합니다.The command-line interface (CLI) tools for Entity Framework Core perform design-time development tasks. 예를 들어, 마이그레이션을만들고, 마이그레이션을 적용 하 고, 기존 데이터베이스를 기반으로 하는 모델에 대 한 코드를 생성 합니다.For example, they create migrations, apply migrations, and generate code for a model based on an existing database. 명령은 .NET Core SDK의 일부인 플랫폼 간 dotnet 명령에 대 한 확장입니다.The commands are an extension to the cross-platform dotnet command, which is part of the .NET Core SDK. 이러한 도구는 .NET Core 프로젝트에서 작동 합니다.These tools work with .NET Core projects.

Visual Studio를 사용 하는 경우 대신 패키지 관리자 콘솔 도구 를 사용 하는 것이 좋습니다.If you're using Visual Studio, we recommend the Package Manager Console tools instead:

  • 수동으로 디렉터리를 전환 하지 않고도 패키지 관리자 콘솔 에서 선택한 현재 프로젝트와 함께 자동으로 작동 합니다.They automatically work with the current project selected in the Package Manager Console without requiring that you manually switch directories.
  • 명령이 완료 된 후 명령으로 생성 된 파일을 자동으로 엽니다.They automatically open files generated by a command after the command is completed.

도구 설치Installing the tools

설치 절차는 프로젝트 형식 및 버전에 따라 달라 집니다.The installation procedure depends on project type and version:

  • EF Core 3(sp3)EF Core 3.x
  • ASP.NET Core 버전 2.1 이상ASP.NET Core version 2.1 and later
  • EF Core 2.xEF Core 2.x
  • 1.x EF CoreEF Core 1.x

EF Core 3(sp3)EF Core 3.x

  • dotnet ef는 전역 또는 로컬 도구로 설치 해야 합니다.dotnet ef must be installed as a global or local tool. 대부분의 개발자는 dotnet ef 다음 명령을 사용 하 여 전역 도구로 설치 합니다.Most developers will install dotnet ef as a global tool with the following command:

    dotnet tool install --global dotnet-ef
    

    As local tool을 사용할 수도 있습니다 dotnet ef .You can also use dotnet ef as local tool. 로컬 도구로 사용 하려면 도구 매니페스트 파일을 사용 하 여 도구를 도구 종속성으로 선언 하는 프로젝트의 종속성을 복원 합니다.To use it as a local tool, restore the dependencies of a project that declares it as a tooling dependency using a tool manifest file.

  • .NET Core SDK를 설치합니다.Install the .NET Core SDK.

  • 최신 패키지를 설치 Microsoft.EntityFrameworkCore.Design 합니다.Install the latest Microsoft.EntityFrameworkCore.Design package.

    dotnet add package Microsoft.EntityFrameworkCore.Design
    

ASP.NET Core 2.1 이상ASP.NET Core 2.1+

  • 현재 .NET Core SDK를 설치 합니다.Install the current .NET Core SDK. 최신 버전의 Visual Studio 2017이 있는 경우에도 이 SDK를 설치해야 합니다.The SDK has to be installed even if you have the latest version of Visual Studio 2017.

    이는 Microsoft.EntityFrameworkCore.Design 패키지가 AspNetCore 메타 패키지에 포함 되어 있으므로 ASP.NET Core 2.1 이상에 필요 합니다.This is all that is needed for ASP.NET Core 2.1+ because the Microsoft.EntityFrameworkCore.Design package is included in the Microsoft.AspNetCore.App metapackage.

EF Core 2.x (ASP.NET Core 없음)EF Core 2.x (not ASP.NET Core)

dotnet ef명령은 .NET Core SDK에 포함 되지만 패키지를 설치 하는 명령을 사용 하도록 설정 Microsoft.EntityFrameworkCore.Design 합니다.The dotnet ef commands are included in the .NET Core SDK, but to enable the commands you have to install the Microsoft.EntityFrameworkCore.Design package.

  • 현재 .NET Core SDK를 설치 합니다.Install the current .NET Core SDK. 최신 버전의 Visual Studio가 설치 되어 있는 경우에도 SDK를 설치 해야 합니다.The SDK has to be installed even if you have the latest version of Visual Studio.

  • 안정적인 최신 패키지를 설치 Microsoft.EntityFrameworkCore.Design 합니다.Install the latest stable Microsoft.EntityFrameworkCore.Design package.

    dotnet add package Microsoft.EntityFrameworkCore.Design
    

1.x EF CoreEF Core 1.x

  • .NET Core SDK 버전 2.1.200를 설치 합니다.Install the .NET Core SDK version 2.1.200. 이후 버전은 EF Core 1.0 및 1.1에 대 한 CLI 도구와 호환 되지 않습니다.Later versions are not compatible with CLI tools for EF Core 1.0 and 1.1.

  • 2.1.200 SDK 버전을 사용 하도록 응용 프로그램을 구성 하려면 파일 에서 해당global.js 을 수정 합니다.Configure the application to use the 2.1.200 SDK version by modifying its global.json file. 이 파일은 일반적으로 솔루션 디렉터리 (프로젝트 위에 하나)에 포함 됩니다.This file is normally included in the solution directory (one above the project).

  • 프로젝트 파일을 편집 하 고 Microsoft.EntityFrameworkCore.Tools.DotNet 항목으로 추가 DotNetCliToolReference 합니다.Edit the project file and add Microsoft.EntityFrameworkCore.Tools.DotNet as a DotNetCliToolReference item. 최신 1.x 버전을 지정 합니다 (예: 1.1.6).Specify the latest 1.x version, for example: 1.1.6. 이 섹션의 끝에 있는 프로젝트 파일 예제를 참조 하세요.See the project file example at the end of this section.

  • 최신 1.x 버전의 Microsoft.EntityFrameworkCore.Design 패키지를 설치 합니다. 예를 들면 다음과 같습니다.Install the latest 1.x version of the Microsoft.EntityFrameworkCore.Design package, for example:

    dotnet add package Microsoft.EntityFrameworkCore.Design -v 1.1.6
    

    두 패키지 참조가 모두 추가 되 면 프로젝트 파일은 다음과 같습니다.With both package references added, the project file looks something like this:

    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>netcoreapp1.1</TargetFramework>
      </PropertyGroup>
      <ItemGroup>
        <PackageReference Include="Microsoft.EntityFrameworkCore.Design"
                          Version="1.1.6"
                           PrivateAssets="All" />
      </ItemGroup>
      <ItemGroup>
         <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet"
                                Version="1.1.6" />
      </ItemGroup>
    </Project>
    

    를 사용 하는 패키지 참조가 PrivateAssets="All" 이 프로젝트를 참조 하는 프로젝트에 노출 되지 않습니다.A package reference with PrivateAssets="All" isn't exposed to projects that reference this project. 이 제한은 일반적으로 개발 중에만 사용 되는 패키지에 특히 유용 합니다.This restriction is especially useful for packages that are typically only used during development.

설치 확인Verify installation

다음 명령을 실행 하 EF Core CLI 도구가 올바르게 설치 되었는지 확인 합니다.Run the following commands to verify that EF Core CLI tools are correctly installed:

dotnet restore
dotnet ef

명령의 출력은 사용 중인 도구의 버전을 식별 합니다.The output from the command identifies the version of the tools in use:


                     _/\__
               ---==/    \\
         ___  ___   |.    \|\
        | __|| __|  |  )   \\\
        | _| | _|   \_/ |  //|\\
        |___||_|       /   \\\/\\

Entity Framework Core .NET Command-line Tools 2.1.3-rtm-32065

<Usage documentation follows, not shown.>

도구 업데이트Updating the tools

를 사용 dotnet tool update --global dotnet-ef 하 여 프로젝트에 로컬로 설치 된 도구가 있는 경우 사용 가능한 최신 버전으로 전역 도구를 업데이트 합니다 dotnet tool update dotnet-ef .Use dotnet tool update --global dotnet-ef to update the global tools to the latest available version, if you have the tools installed locally in your project use dotnet tool update dotnet-ef. 명령에를 추가 하 여 특정 버전을 설치 --version <VERSION> 합니다.Install a specific version by appending --version <VERSION> to your command. 자세한 내용은 dotnet 도구 설명서의 업데이트 섹션을 참조 하세요.See the Update section of the dotnet tool documentation for more details.

도구 사용Using the tools

도구를 사용 하기 전에 시작 프로젝트를 만들거나 환경을 설정 해야 할 수 있습니다.Before using the tools, you might have to create a startup project or set the environment.

대상 프로젝트 및 시작 프로젝트Target project and startup project

명령은 프로젝트시작 프로젝트를 참조 합니다.The commands refer to a project and a startup project.

  • 프로젝트 는 명령이 파일을 추가 하거나 제거 하는 위치 이기 때문에 대상 프로젝트가 라고도 합니다.The project is also known as the target project because it's where the commands add or remove files. 기본적으로 현재 디렉터리에 있는 프로젝트는 대상 프로젝트입니다.By default, the project in the current directory is the target project. 옵션을 사용 하 여 다른 프로젝트를 대상 프로젝트로 지정할 수 있습니다 --project .You can specify a different project as target project by using the --project option.

  • 시작 프로젝트 는 도구가 빌드하고 실행 하는 프로젝트입니다.The startup project is the one that the tools build and run. 도구는 디자인 타임에 응용 프로그램 코드를 실행 하 여 데이터베이스 연결 문자열 및 모델 구성과 같은 프로젝트에 대 한 정보를 가져와야 합니다.The tools have to execute application code at design time to get information about the project, such as the database connection string and the configuration of the model. 기본적으로 현재 디렉터리에 있는 프로젝트는 시작 프로젝트입니다.By default, the project in the current directory is the startup project. 옵션을 사용 하 여 다른 프로젝트를 시작 프로젝트로 지정할 수 있습니다 --startup-project .You can specify a different project as startup project by using the --startup-project option.

시작 프로젝트와 대상 프로젝트는 대개 동일한 프로젝트입니다.The startup project and target project are often the same project. 개별 프로젝트의 일반적인 시나리오는 다음과 같습니다.A typical scenario where they are separate projects is when:

  • EF Core 컨텍스트 및 엔터티 클래스는 .NET Core 클래스 라이브러리에 있습니다.The EF Core context and entity classes are in a .NET Core class library.
  • .NET Core 콘솔 앱 또는 웹 앱은 클래스 라이브러리를 참조 합니다.A .NET Core console app or web app references the class library.

또한 EF Core 컨텍스트와 별도의 클래스 라이브러리에 마이그레이션 코드를 추가할 수 있습니다.It's also possible to put migrations code in a class library separate from the EF Core context.

기타 대상 프레임 워크Other target frameworks

CLI 도구는 .NET Core 프로젝트 및 .NET Framework 프로젝트에서 작동 합니다.The CLI tools work with .NET Core projects and .NET Framework projects. .NET Standard 클래스 라이브러리에 EF Core 모델을 포함 하는 앱에는 .NET Core 또는 .NET Framework 프로젝트가 없을 수 있습니다.Apps that have the EF Core model in a .NET Standard class library might not have a .NET Core or .NET Framework project. 예를 들어이는 Xamarin 및 유니버설 Windows 플랫폼 apps에서 적용 됩니다.For example, this is true of Xamarin and Universal Windows Platform apps. 이러한 경우 도구에 대 한 시작 프로젝트 역할을 하는 용도로만 사용할 수 있는 .NET Core 콘솔 앱 프로젝트를 만들 수 있습니다.In such cases, you can create a .NET Core console app project whose only purpose is to act as startup project for the tools. 프로젝트는 — 도구에 대 한 대상을 제공 하는 데만 필요한 실제 코드가 없는 더미 프로젝트 일 수 있습니다.The project can be a dummy project with no real code — it is only needed to provide a target for the tooling.

더미 프로젝트가 필요한 이유는 무엇 인가요?Why is a dummy project required? 앞에서 설명한 대로 도구는 디자인 타임에 응용 프로그램 코드를 실행 해야 합니다.As mentioned earlier, the tools have to execute application code at design time. 이렇게 하려면 .NET Core 런타임을 사용 해야 합니다.To do that, they need to use the .NET Core runtime. EF Core 모델이 .NET Core 또는 .NET Framework을 대상으로 하는 프로젝트에 있는 경우 EF Core 도구는 프로젝트에서 런타임을 만듭니다.When the EF Core model is in a project that targets .NET Core or .NET Framework, the EF Core tools borrow the runtime from the project. EF Core 모델이 .NET Standard 클래스 라이브러리에 있는 경우에는이 작업을 수행할 수 없습니다.They can't do that if the EF Core model is in a .NET Standard class library. .NET Standard은 실제 .NET 구현이 아닙니다. .NET 구현에서 지원 해야 하는 Api 집합의 사양입니다.The .NET Standard is not an actual .NET implementation; it's a specification of a set of APIs that .NET implementations must support. 따라서 .NET Standard EF Core 도구를 통해 응용 프로그램 코드를 실행할 수 없습니다.Therefore .NET Standard is not sufficient for the EF Core tools to execute application code. 시작 프로젝트로 사용 하기 위해 만드는 더미 프로젝트는 도구가 .NET Standard 클래스 라이브러리를 로드 하는 데 사용할 수 있는 구체적인 대상 플랫폼을 제공 합니다.The dummy project you create to use as startup project provides a concrete target platform into which the tools can load the .NET Standard class library.

ASP.NET Core 환경ASP.NET Core environment

ASP.NET Core 프로젝트에 대 한 환경을 지정 하려면 명령을 실행 하기 전에 ASPNETCORE_ENVIRONMENT 환경 변수를 설정 합니다.To specify the environment for ASP.NET Core projects, set the ASPNETCORE_ENVIRONMENT environment variable before running commands.

일반 옵션Common options

옵션Option ShortShort 설명Description
--json JSON 출력을 표시 합니다.Show JSON output.
--context <DBCONTEXT> -c 사용할 DbContext 클래스입니다.The DbContext class to use. 네임 스페이스를 포함 하거나 정규화 된 클래스 이름입니다.Class name only or fully qualified with namespaces. 이 옵션을 생략 하면 EF Core 컨텍스트 클래스가 검색 됩니다.If this option is omitted, EF Core will find the context class. 컨텍스트 클래스가 여러 개인 경우이 옵션이 필요 합니다.If there are multiple context classes, this option is required.
--project <PROJECT> -p 대상 프로젝트의 프로젝트 폴더에 대 한 상대 경로입니다.Relative path to the project folder of the target project. 기본값은 현재 폴더입니다.Default value is the current folder.
--startup-project <PROJECT> -s 시작 프로젝트의 프로젝트 폴더에 대 한 상대 경로입니다.Relative path to the project folder of the startup project. 기본값은 현재 폴더입니다.Default value is the current folder.
--framework <FRAMEWORK> 대상 프레임 워크에 대 한 대상 프레임 워크 모니커입니다 .The Target Framework Moniker for the target framework. 프로젝트 파일이 여러 대상 프레임 워크를 지정 하 고 그 중 하나를 선택 하려는 경우에 사용 합니다.Use when the project file specifies multiple target frameworks, and you want to select one of them.
--configuration <CONFIGURATION> 빌드 구성입니다 (예: Debug 또는) Release .The build configuration, for example: Debug or Release.
--runtime <IDENTIFIER> 패키지를 복원할 대상 런타임의 식별자입니다.The identifier of the target runtime to restore packages for. RID(런타임 식별자) 목록은 RID 카탈로그를 참조하세요.For a list of Runtime Identifiers (RIDs), see the RID catalog.
--help -h 도움말 정보를 표시합니다.Show help information.
--verbose -v 자세한 정보 출력을 표시합니다.Show verbose output.
--no-color 출력에 색을 표시 하지 않습니다.Don't colorize output.
--prefix-output 수준으로 출력을 접두사로 사용 합니다.Prefix output with level.

dotnet ef 데이터베이스 삭제dotnet ef database drop

데이터베이스를 삭제합니다.Drops the database.

옵션:Options:

옵션Option ShortShort 설명Description
--force -f 확인 하지 않습니다.Don't confirm.
--dry-run 삭제할 데이터베이스를 표시 하지만 삭제할 데이터베이스를 표시 하지 않습니다.Show which database would be dropped, but don't drop it.

dotnet ef 데이터베이스 업데이트dotnet ef database update

데이터베이스를 마지막 마이그레이션 또는 지정 된 마이그레이션으로 업데이트 합니다.Updates the database to the last migration or to a specified migration.

인수:Arguments:

인수Argument 설명Description
<MIGRATION> 대상 마이그레이션입니다.The target migration. 마이그레이션은 이름 또는 ID로 식별할 수 있습니다.Migrations may be identified by name or by ID. 숫자 0은 첫 번째 마이그레이션 이전 을 의미 하는 특별 한 경우로, 모든 마이그레이션이 되돌려집니다.The number 0 is a special case that means before the first migration and causes all migrations to be reverted. 마이그레이션이 지정 되지 않은 경우이 명령은 기본적으로 마지막 마이그레이션을 설정 합니다.If no migration is specified, the command defaults to the last migration.

옵션:Options:

옵션Option 설명Description
--connection <CONNECTION> 데이터베이스에 대한 연결 문자열입니다.The connection string to the database. 는 또는에 지정 된 것으로 기본 설정 AddDbContext OnConfiguring 됩니다.Defaults to the one specified in AddDbContext or OnConfiguring. EF Core 5.0.0부터 사용할 수 있습니다.(Available from EF Core 5.0.0 onwards.)

다음 예에서는 데이터베이스를 지정 된 마이그레이션으로 업데이트 합니다.The following examples update the database to a specified migration. 첫 번째는 마이그레이션 이름을 사용 하 고 두 번째는 마이그레이션 ID 및 지정 된 연결을 사용 합니다.The first uses the migration name and the second uses the migration ID and a specified connection:

dotnet ef database update InitialCreate
dotnet ef database update 20180904195021_InitialCreate --connection your_connection_string

dotnet ef dbcontext 정보dotnet ef dbcontext info

형식에 대 한 정보를 가져옵니다 DbContext .Gets information about a DbContext type.

dotnet ef dbcontext 목록dotnet ef dbcontext list

사용 가능한 DbContext 유형을 나열 합니다.Lists available DbContext types.

dotnet ef dbcontext 스 캐 폴드dotnet ef dbcontext scaffold

DbContext데이터베이스에 대 한 및 엔터티 형식에 대 한 코드를 생성 합니다.Generates code for a DbContext and entity types for a database. 이 명령이 엔터티 형식을 생성 하려면 데이터베이스 테이블에 기본 키가 있어야 합니다.In order for this command to generate an entity type, the database table must have a primary key.

인수:Arguments:

인수Argument 설명Description
<CONNECTION> 데이터베이스에 대한 연결 문자열입니다.The connection string to the database. ASP.NET Core 2.x 프로젝트의 경우 값은 *name = <name of connection string> *일 수 있습니다.For ASP.NET Core 2.x projects, the value can be name=<name of connection string>. 이 경우 프로젝트에 대해 설정 된 구성 소스에서 이름이 제공 됩니다.In that case the name comes from the configuration sources that are set up for the project.
<PROVIDER> 사용할 공급자입니다.The provider to use. 일반적으로 NuGet 패키지의 이름입니다 (예:) Microsoft.EntityFrameworkCore.SqlServer .Typically this is the name of the NuGet package, for example: Microsoft.EntityFrameworkCore.SqlServer.

옵션:Options:

옵션Option ShortShort 설명Description
--data-annotations -d 특성을 사용 하 여 모델을 구성 합니다 (가능한 경우).Use attributes to configure the model (where possible). 이 옵션을 생략 하면 흐름 API만 사용 됩니다.If this option is omitted, only the fluent API is used.
--context <NAME> -c 생성할 클래스의 이름 DbContext 입니다.The name of the DbContext class to generate.
--context-dir <PATH> 클래스 파일을 저장할 디렉터리 DbContext 입니다.The directory to put the DbContext class file in. 경로는 프로젝트 디렉터리에 상대적입니다.Paths are relative to the project directory. 네임 스페이스는 폴더 이름에서 파생 됩니다.Namespaces are derived from the folder names.
--context-namespace <NAMESPACE> 생성 된 클래스에 사용할 네임 스페이스 DbContext 입니다.The namespace to use for the generated DbContext class. 참고: --namespace 를 재정의 합니다.Note: overrides --namespace. (EFCore 5.0.0부터 사용 가능)(Available from EFCore 5.0.0 onwards.)
--force -f 기존 파일을 덮어씁니다.Overwrite existing files.
--output-dir <PATH> -o 엔터티 클래스 파일을 배치할 디렉터리입니다.The directory to put entity class files in. 경로는 프로젝트 디렉터리에 상대적입니다.Paths are relative to the project directory.
--namespace <NAMESPACE> -n 생성 된 모든 클래스에 사용할 네임 스페이스입니다.The namespace to use for all generated classes. 기본값은 루트 네임 스페이스와 출력 디렉터리에서 생성 됩니다.Defaults to generated from the root namespace and the output directory. (EFCore 5.0.0부터 사용 가능)(Available from EFCore 5.0.0 onwards.)
--schema <SCHEMA_NAME>... 엔터티 형식을 생성할 테이블의 스키마입니다.The schemas of tables to generate entity types for. 여러 스키마를 지정 하려면 --schema 각각에 대해 반복 합니다.To specify multiple schemas, repeat --schema for each one. 이 옵션을 생략 하면 모든 스키마가 포함 됩니다.If this option is omitted, all schemas are included.
--table <TABLE_NAME>...--table <TABLE_NAME>... -t 엔터티 형식을 생성할 테이블입니다.The tables to generate entity types for. 여러 테이블을 지정 하려면 -t 각 테이블 --table 에 대해 또는를 반복 합니다.To specify multiple tables, repeat -t or --table for each one. 이 옵션을 생략 하면 모든 테이블이 포함 됩니다.If this option is omitted, all tables are included.
--use-database-names 테이블 및 열 이름은 데이터베이스에 표시 된 대로 정확 하 게 사용 합니다.Use table and column names exactly as they appear in the database. 이 옵션을 생략 하면 데이터베이스 이름이 c # 이름 스타일 규칙을 보다 잘 따르도록 변경 됩니다.If this option is omitted, database names are changed to more closely conform to C# name style conventions.
--no-onconfiguring OnConfiguring생성 된 클래스에서 메서드를 생성 하지 않습니다 DbContext .Suppresses generation of the OnConfiguring method in the generated DbContext class. (EFCore 5.0.0부터 사용 가능)(Available from EFCore 5.0.0 onwards.)

다음 예에서는 모든 스키마 및 테이블을 스 캐 폴드 하 고 새 파일을 모델 폴더에 넣습니다.The following example scaffolds all schemas and tables and puts the new files in the Models folder.

dotnet ef dbcontext scaffold "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -o Models

다음 예에서는 선택한 테이블만 스 캐 폴드 지정 된 이름 및 네임 스페이스를 사용 하 여 별도의 폴더에 컨텍스트를 만듭니다.The following example scaffolds only selected tables and creates the context in a separate folder with a specified name and namespace:

dotnet ef dbcontext scaffold "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -o Models -t Blog -t Post --context-dir Context -c BlogContext --context-namespace New.Namespace

dotnet ef 마이그레이션 추가dotnet ef migrations add

새 마이그레이션을 추가 합니다.Adds a new migration.

인수:Arguments:

인수Argument 설명Description
<NAME> 마이그레이션의 이름입니다.The name of the migration.

옵션:Options:

옵션Option ShortShort 설명Description
--output-dir <PATH> -o 파일을 출력 하는 데 사용 하는 디렉터리입니다.The directory use to output the files. 경로는 대상 프로젝트 디렉터리를 기준으로 합니다.Paths are relative to the target project directory. 기본값은 "migration"입니다.Defaults to "Migrations".
--namespace <NAMESPACE> -n 생성 된 클래스에 사용할 네임 스페이스입니다.The namespace to use for the generated classes. 출력 디렉터리에서 생성 되는 기본값입니다.Defaults to generated from the output directory. (EFCore 5.0.0부터 사용 가능)(Available from EFCore 5.0.0 onwards.)

dotnet ef 마이그레이션 목록dotnet ef migrations list

사용 가능한 마이그레이션을 나열 합니다.Lists available migrations.

dotnet ef 마이그레이션 제거dotnet ef migrations remove

마이그레이션에 대해 수행 된 코드 변경 내용을 롤백하는 마지막 마이그레이션을 제거 합니다.Removes the last migration (rolls back the code changes that were done for the migration).

옵션:Options:

옵션Option ShortShort 설명Description
--force -f 마이그레이션을 되돌립니다 (데이터베이스에 적용 된 변경 내용 롤백).Revert the migration (roll back the changes that were applied to the database).

dotnet ef 마이그레이션 스크립트dotnet ef migrations script

마이그레이션에서 SQL 스크립트를 생성 합니다.Generates a SQL script from migrations.

인수:Arguments:

인수Argument 설명Description
<FROM> 마이그레이션을 시작 하는 중입니다.The starting migration. 마이그레이션은 이름 또는 ID로 식별할 수 있습니다.Migrations may be identified by name or by ID. 숫자 0은 첫 번째 마이그레이션 이전을 의미 하는 특수 한 경우입니다.The number 0 is a special case that means before the first migration. 기본값은 0입니다.Defaults to 0.
<TO> 종료 마이그레이션입니다.The ending migration. 마지막 마이그레이션에 대 한 기본값입니다.Defaults to the last migration.

옵션:Options:

옵션Option ShortShort 설명Description
--output <FILE> -o 스크립트를 쓸 파일입니다.The file to write the script to.
--idempotent -i 마이그레이션할 때 데이터베이스에서 사용할 수 있는 스크립트를 생성 합니다.Generate a script that can be used on a database at any migration.

다음 예에서는 InitialCreate migration에 대 한 스크립트를 만듭니다.The following example creates a script for the InitialCreate migration:

dotnet ef migrations script 0 InitialCreate

다음 예에서는 InitialCreate migration 후 모든 마이그레이션에 대 한 스크립트를 만듭니다.The following example creates a script for all migrations after the InitialCreate migration.

dotnet ef migrations script 20180904195021_InitialCreate

추가 리소스Additional resources