-
Notifications
You must be signed in to change notification settings - Fork 2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix typo (from PR#630)
- Loading branch information
Showing
12 changed files
with
68 additions
and
389 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
44 changes: 0 additions & 44 deletions
44
entity-framework/core/providers/firebird-community/index.md
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,77 @@ | ||
--- | ||
--- | ||
title: Database Providers - EF Core | ||
author: rowanmiller | ||
ms.author: divega | ||
|
||
ms.date: 10/27/2016 | ||
|
||
ms.date: 2/23/2018 | ||
ms.assetid: 14fffb6c-a687-4881-a094-af4a1359a296 | ||
ms.technology: entity-framework-core | ||
|
||
uid: core/providers/index | ||
--- | ||
|
||
# Database Providers | ||
|
||
Entity Framework Core uses a provider model to allow EF to be used to access many different databases. Some concepts are common to most databases, and are included in the primary EF Core components. Such concepts include expressing queries in LINQ, transactions, and tacking changes to objects once they are loaded from the database. Some concepts are specific to a particular provider. For example, the SQL Server provider allows you to configure memory-optimized tables (a feature specific to SQL Server). Other concepts are specific to a class of providers. For example, EF Core providers for relational databases build on the common `Microsoft.EntityFrameworkCore.Relational` library, which provides APIs for configuring table and column mappings, foreign key constraints, etc. | ||
Entity Framework Core can access many different databases through plug-in libraries called database providers. | ||
|
||
## Current providers | ||
> [!IMPORTANT] | ||
> EF Core providers are built by a variety of sources. Not all providers are maintained as part of the Entity Framework Core project. When considering a provider, be sure to evaluate quality, licensing, support, etc. to ensure they meet your requirements. Also make sure you review each provider's documentation for detailed version compatibility information. | ||
| NuGet Package | Supported database engines | Maintainer / Vendor | Notes | Useful links | | ||
|:------------------------------------------------------------------------------------------------------------------|:---------------------------|:------------------------------------------------------------------------------|:----------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ||
| [Microsoft.EntityFrameworkCore.SqlServer](https://www.nuget.org/packages/Microsoft.EntityFrameworkCore.SqlServer) | SQL Server 2008 onwards | [EF Core Project](https://github.com/aspnet/EntityFrameworkCore/) (Microsoft) | | [docs](xref:core/providers/sql-server/index) | | ||
| [Microsoft.EntityFrameworkCore.Sqlite](https://www.nuget.org/packages/Microsoft.EntityFrameworkCore.Sqlite) | SQLite 3.7 onwards | [EF Core Project](https://github.com/aspnet/EntityFrameworkCore/) (Microsoft) | | [docs](xref:core/providers/sqlite/index) | | ||
| [Microsoft.EntityFrameworkCore.InMemory](https://www.nuget.org/packages/Microsoft.EntityFrameworkCore.InMemory) | EF Core in-memory database | [EF Core Project](https://github.com/aspnet/EntityFrameworkCore/) (Microsoft) | For testing only | [docs](xref:core/providers/in-memory/index) | | ||
| [Npgsql.EntityFrameworkCore.PostgreSQL](https://www.nuget.org/packages/Microsoft.EntityFrameworkCore.SqlServer) | PostgreSQL | [Npgsql Development Team](https://github.com/npgsql) | | [docs](http://www.npgsql.org/efcore/index.html) | | ||
| [Pomelo.EntityFrameworkCore.MySql](https://www.nuget.org/packages/Pomelo.EntityFrameworkCore.MySql) | MySQL, MariaDB | [Pomelo Foundation Project](https://github.com/PomeloFoundation) | | [readme](https://github.com/PomeloFoundation/Pomelo.EntityFrameworkCore.MySql/blob/master/README.md) | | ||
| [Pomelo.EntityFrameworkCore.MyCat](https://www.nuget.org/packages/Pomelo.EntityFrameworkCore.MyCat) | MyCAT Server | [Pomelo Foundation Project](https://github.com/PomeloFoundation) | Up to EF Core 1.1 | [readme](https://github.com/PomeloFoundation/Pomelo.EntityFrameworkCore.MyCat/blob/master/README.md) | | ||
| [EntityFrameworkCore.SqlServerCompact40](https://www.nuget.org/packages/EntityFrameworkCore.SqlServerCompact40) | SQL Server Compact 4.0 | [Erik Ejlskov Jensen](https://github.com/ErikEJ/) | .NET Framework | [wiki](https://github.com/ErikEJ/EntityFramework.SqlServerCompact/wiki/Using-EF-Core-with-SQL-Server-Compact-in-Traditional-.NET-Applications) | | ||
| [EntityFrameworkCore.SqlServerCompact35](https://www.nuget.org/packages/EntityFrameworkCore.SqlServerCompact35) | SQL Server Compact 3.5 | [Erik Ejlskov Jensen](https://github.com/ErikEJ/) | .NET Framework | [wiki](https://github.com/ErikEJ/EntityFramework.SqlServerCompact/wiki/Using-EF-Core-with-SQL-Server-Compact-in-Traditional-.NET-Applications) | | ||
| [MySql.Data.EntityFrameworkCore](https://www.nuget.org/packages/MySql.Data.EntityFrameworkCore) | MySQL | [MySQL project](http://dev.mysql.com) (Oracle) | | [docs](https://dev.mysql.com/doc/connector-net/en/) | | ||
| [EntityFrameworkCore.FirebirdSql](https://www.nuget.org/packages/EntityFrameworkCore.FirebirdSql/) | Firebird 2.5 and 3.x | [Rafael Almeida](https://github.com/ralmsdeveloper) | EF Core 2.0 onwards | [wiki](https://github.com/ralmsdeveloper/EntityFrameworkCore.FirebirdSQL/wiki) | | ||
| [IBM.EntityFrameworkCore](https://www.nuget.org/packages/IBM.EntityFrameworkCore) | Db2, Informix | [IBM](https://ibm.com) | Up to EF Core 1.1, Windows | [FAQ](https://www.ibm.com/developerworks/community/blogs/96960515-2ea1-4391-8170-b0515d08e4da/entry/Instructions_for_downloading_and_using_DB2_NET_Core_provider_package) | | ||
| [IBM.EntityFrameworkCore-lnx](https://www.nuget.org/packages/IBM.EntityFrameworkCore-lnx) | Db2, Informix | [IBM](https://ibm.com) | Up to EF Core 1.1, Linux | [FAQ](https://www.ibm.com/developerworks/community/blogs/96960515-2ea1-4391-8170-b0515d08e4da/entry/Instructions_for_downloading_and_using_DB2_NET_Core_provider_package) | | ||
| [Devart.Data.Oracle.EFCore](https://www.nuget.org/packages/Devart.Data.Oracle.EFCore/) | Oracle 9.2.0.4 onwards | [DevArt](https://www.devart.com/) | Paid | [docs](https://www.devart.com/dotconnect/oracle/docs/) | | ||
| [Devart.Data.PostgreSql.EFCore](https://www.nuget.org/packages/Devart.Data.PostgreSql.EFCore/) | PostgreSQL 8.0 onwards | [DevArt](https://www.devart.com/) | Paid | [docs](https://www.devart.com/dotconnect/postgresql/docs/) | | ||
| [Devart.Data.SQLite.EFCore](https://www.nuget.org/packages/Devart.Data.SQLite.EFCore/) | SQLite 3 onwards | [DevArt](https://www.devart.com/) | Paid | [docs](https://www.devart.com/dotconnect/sqlite/docs/) | | ||
| [Devart.Data.MySql.EFCore](https://www.nuget.org/packages/Devart.Data.MySql.EFCore/) | MySQL 5 onwards | [DevArt](https://www.devart.com/) | Paid | [docs](https://www.devart.com/dotconnect/mysql/docs/) | | ||
| [EntityFrameworkCore.Jet](https://www.nuget.org/packages/EntityFrameworkCore.Jet/) | Microsoft Access files | [Bubi](https://github.com/bubibubi) | EF Core 2.0, .NET Framework | [readme](https://github.com/bubibubi/EntityFrameworkCore.Jet/blob/master/docs/README.md) | | ||
|
||
## Future Providers | ||
|
||
### Cosmos DB | ||
|
||
We have been developing an EF Core provider for the DocumentDB API in Cosmos DB. This will be the first complete document-oriented database provider we have produced, and the learnings from this exercise are going to inform improvements in the design of the subsequent release after 2.1. The current plan is to publish an early preview of the provider in the 2.1 timeframe. | ||
|
||
### Oracle | ||
The Oracle .NET team has announced they are planning to release a first-party provider for EF Core 2.0 approximately in the third quarter of 2018. See their [statement of direction for .NET Core and Entity Framework Core](http://www.oracle.com/technetwork/topics/dotnet/tech-info/odpnet-dotnet-ef-core-sod-4395108.pdf) for more information. | ||
Please direct any questions about this provider, including the release timeline, to the [Oracle Community Site](https://community.oracle.com/). | ||
|
||
In the meanwhile, the EF team has produced a [sample EF Core provider for Oracle databases](https://github.com/aspnet/EntityFrameworkCore/blob/dev/samples/OracleProvider/README.md). The purpose of the project is not to produce an EF Core provider owned by Microsoft, but to help us identify gaps in EF Core's relational and base functionality which we need to address in order to better support Oracle, and to jumpstart the development of other Oracle providers for EF Core either by Oracle or third parties. | ||
|
||
## Setting up a provider in your application | ||
|
||
Most database providers for EF Core are distributed as NuGet packages. This means they can be installed using the `dotnet` tool in the command line: | ||
|
||
``` console | ||
dotnet add package provider_package_name | ||
``` | ||
|
||
Or in Visual Studio, using NuGet's Package Manager Console: | ||
|
||
``` powershell | ||
install-package provider_package_name | ||
``` | ||
|
||
## Using a database provider in your application | ||
|
||
You will then configure the provider in your `DbContext` either using the `OnConfiguring` method or if the `AddDbContext` method if you are using a dependency injection container. E.g. the following line configures the SQL Server provider with the passed connection string: | ||
|
||
``` csharp | ||
optionsBuilder.UseSqlServer("Server=(localdb)\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;"); | ||
``` | ||
|
||
Database providers can extend EF Core to enable functionality unique to specific databases. Some concepts are common to most databases, and are included in the primary EF Core components. Such concepts include expressing queries in LINQ, transactions, and tracking changes to objects once they are loaded from the database. Some concepts are specific to a particular provider. For example, the SQL Server provider allows you to [configure memory-optimized tables](xref:core/providers/sql-server/memory-optimized-tables) (a feature specific to SQL Server). Other concepts are specific to a class of providers. For example, EF Core providers for relational databases build on the common `Microsoft.EntityFrameworkCore.Relational` library, which provides APIs for configuring table and column mappings, foreign key constraints, etc. | ||
Providers are usually distributed as NuGet packages. | ||
|
||
EF Core providers are built by a variety of sources. Not all providers are maintained as part of the Entity Framework Core project. When considering a third party provider, be sure to evaluate quality, licensing, support, etc. to ensure they meet your requirements. | ||
> [!IMPORTANT] | ||
> When new patches containing bug fixes are released for EF Core, some of the fixes are contained in the `Microsoft.EntityFrameworkCore.Relational` package. It is recommended that you add the latest patched version of this package as a direct dependency if you are using any of the relational database providers. |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.