Entity Framework Core는 플러그 인 라이브러리 호출 데이터베이스 공급자를 통해 다양한 데이터베이스에 액세스할 수 있습니다.
현재 공급자
Important
EF Core 공급자는 다양한 원본을 바탕으로 작성됩니다. 일부 공급자는 Microsoft Entity Framework Core 프로젝트의 일부로 유지되지 않습니다. 공급자를 고려할 때는 품질, 라이선싱, 지원 등을 평가하여 요구 사항을 충족하는지 확인해야 합니다. 또한 자세한 버전 호환성 정보는 각 공급자의 설명서를 검토해야 합니다.
Important
EF Core 공급자는 일반적으로 주 버전에서 작동하지 않습니다. 예를 들어 EF Core 8용으로 릴리스된 공급자는 EF Core 9에서 작동하지 않습니다.
| NuGet 패키지 |
지원되는 데이터베이스 엔진 |
유지 관리자/공급 업체 |
참고/요구 사항 |
EF Core용 |
유용한 링크 |
|
Microsoft.EntityFrameworkCore.SqlServer |
Azure SQL, SQL Server 2012 이상, Azure Synapse Analytics |
EF Core 프로젝트(Microsoft) |
|
8, 9, 10 |
docs |
|
Microsoft.EntityFrameworkCore.Sqlite |
SQLite 3.46.1 이상 |
EF Core 프로젝트(Microsoft) |
|
8, 9, 10 |
docs |
|
Microsoft.EntityFrameworkCore.InMemory |
EF Core 메모리 내 데이터베이스 |
EF Core 프로젝트(Microsoft) |
Limitations |
8, 9, 10 |
docs |
|
Microsoft.EntityFrameworkCore.Cosmos |
Azure Cosmos DB SQL API |
EF Core 프로젝트(Microsoft) |
|
8, 9, 10 |
docs |
|
Npgsql.EntityFrameworkCore.PostgreSQL |
PostgreSQL |
Npgsql 개발 팀 |
|
8, 9 |
docs |
|
Pomelo.EntityFrameworkCore.MySql |
MySQL, MariaDB |
Pomelo Foundation 프로젝트 |
|
8, 9 |
readme |
|
MySql.EntityFrameworkCore |
MySQL |
MySQL 프로젝트(Oracle) |
|
8, 9 |
docs |
|
Oracle.EntityFrameworkCore |
Oracle DB 19c 이상 |
Oracle |
|
8, 9, 10 |
docs |
|
MongoDB.EntityFrameworkCore |
MongoDB |
MongoDB |
|
8 |
docs |
|
Couchbase.EntityFrameworkCore |
Couchbase |
Couchbase |
|
8, 9 |
docs |
|
Devart.Data.MySql.EFCore |
MySQL 5 이상 |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.Oracle.EFCore |
Oracle DB 9.2.0.4 이상 |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.PostgreSql.EFCore |
PostgreSQL 8.0 이상 |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.SQLite.EFCore |
SQLite 3 이상 |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.DB2.EFCore |
DB2 |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.Bigcommerce.EFCore |
BigCommerce |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.Dynamics.EFCore |
마이크로소프트 다이나믹스 365 |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.FreshBooks.EFCore |
FreshBooks |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.Magento.EFCore |
Magento |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.MailChimp.EFCore |
Mailchimp |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.QuickBooks.EFCore |
QuickBooks |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.Salesforce.EFCore |
Salesforce |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.ExactTarget.EFCore |
Salesforce MC(ExactTarget) |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.Sugar.EFCore |
SugarCRM |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.Zoho.EFCore |
Zoho CRM |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.ZohoBooks.EFCore |
Zoho Books |
DevArt |
Paid |
8, 9 |
docs |
|
Devart.Data.ZohoDesk.EFCore |
Zoho Desk |
DevArt |
Paid |
8, 9 |
docs |
|
MASES.EntityFrameworkCore.KNet |
Apache Kafka |
MASES 그룹 |
평가판, 구독 |
8 |
docs |
|
InterBase |
InterBase |
InterBase |
|
8 |
docs |
|
FirebirdSql.EntityFrameworkCore.Firebird |
Firebird 3.0 이상 |
Jií Činčura |
|
8 |
docs |
|
IBM.EntityFrameworkCore |
Db2, Informix |
IBM |
유료, Windows |
8 |
시작하기 |
|
IBM.EntityFrameworkCore-lnx |
Db2, Informix |
IBM |
유료, Linux |
8 |
시작하기 |
|
IBM.EntityFrameworkCore-osx |
Db2, Informix |
IBM |
유료, macOS |
8 |
시작하기 |
|
EntityFrameworkCore.Jet |
Microsoft Access 파일 |
CirrusRedOrg |
Windows |
8, 9 |
readme |
|
Google.Cloud.EntityFrameworkCore.Spanner |
Google Cloud Spanner |
Cloud Spanner 에코시스템 |
|
8 |
tutorial |
|
Teradata.EntityFrameworkCore |
Teradata Database 16.10 이상 |
Teradata |
|
3 |
website |
|
FileContextCore |
데이터를 파일에 저장합니다. |
모리스 야나체크 |
개발 목적 |
3 |
readme |
|
FileBaseContext |
파일에 테이블 저장 |
k.D.g |
개발 목적 |
8, 9, 10 |
readme |
|
EntityFrameworkCore.SqlServerCompact35 |
SQL Server Compact 3.5 |
에릭 에즐스코프 젠슨 |
.NET Framework |
2 |
wiki |
|
EntityFrameworkCore.SqlServerCompact40 |
SQL Server Compact 4.0 |
에릭 에즐스코프 젠슨 |
.NET Framework |
2 |
wiki |
|
EntityFrameworkCore.OpenEdge |
Progress OpenEdge |
Alex Wiese |
|
2 |
readme |
|
EFCore.Snowflake |
Snowflake |
크지슈토프 시엘라프 |
|
8 |
readme |
|
EFCore.Kusto |
Azure Data Explorer(Kusto) |
아나스 이스마일 칸 |
|
8 |
readme |
|
EntityFrameworkCore.Ydb |
YDB |
YDB 팀 |
|
9, 10 |
website |
애플리케이션에 데이터베이스 공급자 추가
대부분의 EF Core용 데이터베이스 공급자는 NuGet 패키지로 배포되며 다음과 같이 설치할 수 있습니다.
dotnet add package provider_package_name
install-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 패키지로 배포됩니다.
Important
EF Core의 새 패치 버전이 릴리스되면 Microsoft.EntityFrameworkCore.Relational 패키지에 대한 업데이트도 포함됩니다.
관계형 데이터베이스 공급자를 추가하면 이 패키지는 애플리케이션의 전이적 종속성으로 전환됩니다.
하지만 대부분의 공급자는 EF Core와 독립적으로 릴리스되고 해당 패키지의 최신 패치 버전에 따라 달라지도록 업데이트되지 않을 수 있습니다.
모든 버그 수정을 가져오기 위해 Microsoft.EntityFrameworkCore.Relational의 패치 버전을 애플리케이션의 직접 종속성으로 추가하는 것이 좋습니다.