Entity Framework Core는 플러그 인 라이브러리 호출 데이터베이스 공급자를 통해 다양한 데이터베이스에 액세스할 수 있습니다.
현재 공급자
중요
EF Core 공급자는 다양한 원본을 바탕으로 작성됩니다. 일부 공급자는 Microsoft Entity Framework Core 프로젝트의 일부로 유지되지 않습니다. 공급자를 고려할 때는 품질, 라이선싱, 지원 등을 평가하여 요구 사항을 충족하는지 확인해야 합니다. 또한 자세한 버전 호환성 정보는 각 공급자의 설명서를 검토해야 합니다.
중요
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 |
문서 |
Microsoft.EntityFrameworkCore.Sqlite |
SQLite 3.46.1 이상 |
EF Core 프로젝트(Microsoft) |
|
8, 9 |
문서 |
Microsoft.EntityFrameworkCore.InMemory |
EF Core 메모리 내 데이터베이스 |
EF Core 프로젝트(Microsoft) |
제한 사항 |
8, 9 |
문서 |
Microsoft.EntityFrameworkCore.Cosmos |
Azure Cosmos DB SQL API |
EF Core 프로젝트(Microsoft) |
|
8, 9 |
문서 |
Npgsql.EntityFrameworkCore.PostgreSQL |
PostgreSQL을 참조하십시오. |
Npgsql 개발 팀 |
|
8, 9 |
문서 |
Pomelo.EntityFrameworkCore.MySql |
MySQL, MariaDB |
Pomelo Foundation 프로젝트 |
|
8, 9 |
추가 정보 |
MySql.EntityFrameworkCore |
MySQL의 |
MySQL 프로젝트(Oracle) |
|
8, 9 |
문서 |
Oracle.EntityFrameworkCore |
Oracle DB 11.2 이상 |
오라클 |
|
8, 9 |
웹 사이트 |
MongoDB.EntityFrameworkCore |
MongoDB |
MongoDB |
|
8 (여덟) |
문서 |
Couchbase.EntityFrameworkCore |
코치베이스 |
Couchbase |
|
8, 9 |
문서 |
Devart.Data.MySql.EFCore |
MySQL 5 이상 |
DevArt |
유료 |
8, 9 |
문서 |
Devart.Data.Oracle.EFCore |
Oracle DB 9.2.0.4 이상 |
DevArt |
유료 |
8, 9 |
문서 |
Devart.Data.PostgreSql.EFCore |
PostgreSQL 8.0 이상 |
DevArt |
유료 |
8, 9 |
문서 |
Devart.Data.SQLite.EFCore |
SQLite 3 이상 |
DevArt |
유료 |
8, 9 |
문서 |
Devart.Data.DB2.EFCore |
DB2 |
DevArt |
유료 |
8, 9 |
문서 |
Devart.Data.Bigcommerce.EFCore |
BigCommerce |
DevArt |
유료 |
8, 9 |
문서 |
Devart.Data.Dynamics.EFCore |
마이크로소프트 다이나믹스 365 |
DevArt |
유료 |
8, 9 |
문서 |
Devart.Data.FreshBooks.EFCore |
FreshBooks |
DevArt |
유료 |
8, 9 |
문서 |
Devart.Data.Magento.EFCore |
Magento |
DevArt |
유료 |
8, 9 |
문서 |
Devart.Data.MailChimp.EFCore |
MailChimp |
DevArt |
유료 |
8, 9 |
문서 |
Devart.Data.QuickBooks.EFCore |
QuickBooks |
DevArt |
유료 |
8, 9 |
문서 |
Devart.Data.Salesforce.EFCore |
Salesforce |
DevArt |
유료 |
8, 9 |
문서 |
Devart.Data.ExactTarget.EFCore |
Salesforce MC(ExactTarget) |
DevArt |
유료 |
8, 9 |
문서 |
Devart.Data.Sugar.EFCore |
SugarCRM |
DevArt |
유료 |
8, 9 |
문서 |
Devart.Data.Zoho.EFCore |
Zoho CRM |
DevArt |
유료 |
8, 9 |
문서 |
Devart.Data.ZohoBooks.EFCore |
Zoho Books |
DevArt |
유료 |
8, 9 |
문서 |
Devart.Data.ZohoDesk.EFCore |
Zoho Desk |
DevArt |
유료 |
8, 9 |
문서 |
MASES. EntityFrameworkCore.KNet |
Apache Kafka |
MASES 그룹 |
평가판, 구독 |
8 (여덟) |
문서 |
InterBase |
InterBase |
InterBase |
|
8 (여덟) |
문서 |
FirebirdSql.EntityFrameworkCore.Firebird |
Firebird 3.0 이상 |
Jií Činčura |
|
8 (여덟) |
문서 |
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 |
윈도우즈 |
8, 9 |
추가 정보 |
Google.Cloud.EntityFrameworkCore.Spanner |
Google Cloud Spanner |
Cloud Spanner 에코시스템 |
|
8 (여덟) |
자습서 |
Teradata.EntityFrameworkCore |
Teradata Database 16.10 이상 |
Teradata |
|
3 |
웹 사이트 |
FileContextCore |
데이터를 파일에 저장합니다. |
모리스 야나체크 |
개발 목적 |
3 |
추가 정보 |
FileBaseContext |
파일에 테이블 저장 |
k.D.g |
개발 목적 |
8, 9 |
추가 정보 |
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 |
추가 정보 |
EFCore.Snowflake |
눈송이 |
크지슈토프 시엘라프 |
|
8 (여덟) |
추가 정보 |
애플리케이션에 데이터베이스 공급자 추가
대부분의 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 패키지로 배포됩니다.
중요
EF Core의 새 패치 버전이 릴리스되면 Microsoft.EntityFrameworkCore.Relational
패키지에 대한 업데이트도 포함됩니다.
관계형 데이터베이스 공급자를 추가하면 이 패키지는 애플리케이션의 전이적 종속성으로 전환됩니다.
하지만 대부분의 공급자는 EF Core와 독립적으로 릴리스되고 해당 패키지의 최신 패치 버전에 따라 달라지도록 업데이트되지 않을 수 있습니다.
모든 버그 수정을 가져오기 위해 Microsoft.EntityFrameworkCore.Relational
의 패치 버전을 애플리케이션의 직접 종속성으로 추가하는 것이 좋습니다.