데이터베이스 공급자

Entity Framework Core는 플러그 인 라이브러리 호출 데이터베이스 공급자를 통해 다양한 데이터베이스에 액세스할 수 있습니다.

현재 공급자

중요

EF Core 공급자는 다양한 원본을 바탕으로 작성됩니다. 일부 공급자는 Microsoft Entity Framework Core 프로젝트의 일부로 유지되지 않습니다. 공급자를 고려할 때는 품질, 라이선싱, 지원 등을 평가하여 요구 사항을 충족하는지 확인해야 합니다. 또한 자세한 버전 호환성 정보는 각 공급자의 설명서를 검토해야 합니다.

중요

EF Core 공급자는 일반적으로 주 버전에서 작동하지 않습니다. 예를 들어 EF Core 7용으로 릴리스된 공급자는 EF Core 8에서 작동하지 않습니다.

NuGet 패키지 지원되는 데이터베이스 엔진 유지 관리자/공급 업체 참고/요구 사항 EF Core용 유용한 링크
Microsoft.EntityFrameworkCore.SqlServer Azure SQL 및 SQL Server 2012 이상 EF Core 프로젝트(Microsoft) 6, 7, 8 docs
Microsoft.EntityFrameworkCore.Sqlite SQLite 3.7 이상 EF Core 프로젝트(Microsoft) 6, 7, 8 docs
Microsoft.EntityFrameworkCore.InMemory EF Core 메모리 내 데이터베이스 EF Core 프로젝트(Microsoft) 제한 사항 6, 7, 8 docs
Microsoft.EntityFrameworkCore.Cosmos Azure Cosmos DB SQL API EF Core 프로젝트(Microsoft) 6, 7, 8 docs
Npgsql.EntityFrameworkCore.PostgreSQL PostgreSQL Npgsql 개발 팀 6, 7, 8 docs
Pomelo.EntityFrameworkCore.MySql MySQL, MariaDB Pomelo Foundation 프로젝트 6, 7, 8 readme
MySql.EntityFrameworkCore MySQL MySQL 프로젝트(Oracle) 6, 7 docs
Oracle.EntityFrameworkCore Oracle DB 11.2 이상 Oracle 6, 7 웹 사이트
MongoDB.EntityFrameworkCore MongoDB MongoDB 현재 미리 보기 상태 7 docs
Devart.Data.MySql.EFCore MySQL 5 이상 DevArt 유료 6, 7, 8 docs
Devart.Data.Oracle.EFCore Oracle DB 9.2.0.4 이상 DevArt 유료 6, 7, 8 docs
Devart.Data.PostgreSql.EFCore PostgreSQL 8.0 이상 DevArt 유료 6, 7, 8 docs
Devart.Data.SQLite.EFCore SQLite 3 이상 DevArt 유료 6, 7, 8 docs
Devart.Data.DB2.EFCore DB2 DevArt 유료 6, 7, 8 docs
Devart.Data.Bigcommerce.EFCore BigCommerce DevArt 유료 6, 7, 8 docs
Devart.Data.Dynamics.EFCore Microsoft Dynamics 365 DevArt 유료 6, 7, 8 docs
Devart.Data.FreshBooks.EFCore FreshBooks DevArt 유료 6, 7, 8 docs
Devart.Data.Magento.EFCore Magento DevArt 유료 6, 7, 8 docs
Devart.Data.MailChimp.EFCore MailChimp DevArt 유료 6, 7, 8 docs
Devart.Data.QuickBooks.EFCore QuickBooks DevArt 유료 6, 7, 8 docs
Devart.Data.Salesforce.EFCore Salesforce DevArt 유료 6, 7, 8 docs
Devart.Data.ExactTarget.EFCore Salesforce MC(ExactTarget) DevArt 유료 6, 7, 8 docs
Devart.Data.Sugar.EFCore SugarCRM DevArt 유료 6, 7, 8 docs
Devart.Data.Zoho.EFCore Zoho CRM DevArt 유료 6, 7, 8 docs
MASES.EntityFrameworkCore.KNet Apache Kafka MASES 그룹 평가판, 구독 6, 7, 8 docs
InterBase InterBase InterBase 6 docs
FirebirdSql.EntityFrameworkCore.Firebird Firebird 3.0 이상 Jiří Činčura 7 docs
IBM.EntityFrameworkCore Db2, Informix IBM 유료, Windows 6 시작
IBM.EntityFrameworkCore-lnx Db2, Informix IBM 유료, Linux 6 시작
IBM.EntityFrameworkCore-osx Db2, Informix IBM 유료, macOS 6 시작
EntityFrameworkCore.Jet Microsoft Access 파일 CirrusRedOrg Windows 6, 7, 8(미리 보기) readme
Google.Cloud.EntityFrameworkCore.Spanner Google Cloud Spanner Cloud Spanner 에코시스템 현재 미리 보기 상태 6 자습서
Teradata.EntityFrameworkCore Teradata Database 16.10 이상 Teradata 3 웹 사이트
FileContextCore 데이터를 파일에 저장합니다. Morris Janatzek 개발 목적 3 readme
FileBaseContext 파일에 테이블 저장 k.D.g 개발 목적 7, 8 readme
EntityFrameworkCore.SqlServerCompact35 SQL Server Compact 3.5 Erik Ejlskov Jensen .NET Framework 2 wiki
EntityFrameworkCore.SqlServerCompact40 SQL Server Compact 4.0 Erik Ejlskov Jensen .NET Framework 2 wiki
EntityFrameworkCore.OpenEdge Progress OpenEdge Alex Wiese 2 readme

애플리케이션에 데이터베이스 공급자 추가

대부분의 EF Core용 데이터베이스 공급자는 NuGet 패키지로 배포되며 다음과 같이 설치할 수 있습니다.

dotnet add package provider_package_name

기능이 설치되면 종속성 주입 컨테이너를 사용하는 경우 DbContext, OnConfiguring 메서드 또는 AddDbContext 메서드 중 하나에서 공급자를 구성합니다. 예를 들어 다음 줄에서는 전달된 연결 문자열을 사용하여 SQL Server 공급자를 구성합니다.

optionsBuilder.UseSqlServer(
    "Server=(localdb)\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;");

데이터베이스 공급자는 EF Core를 확장하여 특정 데이터베이스에 고유한 기능을 사용할 수 있습니다. 개념은 상당 부분 대부분의 데이터베이스에서 공통이며 기본 EF Core 구성 요소에 포함됩니다. 이러한 개념에는 LINQ에서의 쿼리 표현, 트랜잭션, 데이터베이스에서 로드된 후 개체에 대한 변경 내용 추적 등이 포함됩니다. 일부 개념은 특정 공급자에게만 적용됩니다. 예를 들어 SQL Server 공급자에서는 메모리 최적화 테이블을 구성할 수 있습니다(SQL Server 특정 기능). 다른 개념은 공급자 클래스에 특정합니다. 예를 들어 관계형 데이터베이스에 대한 EF Core 공급자는 공통 Microsoft.EntityFrameworkCore.Relational 라이브러리 위에 작성되며 테이블 및 열 매핑, 외부 키 제약 조건 등을 구성하기 위한 API를 제공합니다. 일반적으로 공급자는 NuGet 패키지로 배포됩니다.

중요

EF Core의 새 패치 버전이 릴리스되면 Microsoft.EntityFrameworkCore.Relational 패키지에 대한 업데이트도 포함됩니다. 관계형 데이터베이스 공급자를 추가하면 이 패키지는 애플리케이션의 전이적 종속성으로 전환됩니다. 하지만 대부분의 공급자는 EF Core와 독립적으로 릴리스되고 해당 패키지의 최신 패치 버전에 따라 달라지도록 업데이트되지 않을 수 있습니다. 모든 버그 수정을 가져오기 위해 Microsoft.EntityFrameworkCore.Relational의 패치 버전을 애플리케이션의 직접 종속성으로 추가하는 것이 좋습니다.