编写数据库提供程序Writing a Database Provider
有关编写 Entity Framework Core 数据库提供程序的信息,请参阅,希望通过Arthur Vickers编写 EF Core 提供程序。
备注
自 EF Core 1.1 起,这些文章尚未更新,因此该时间以来发生了重大更改。
问题 681正在跟踪对此文档的更新。
EF Core 基本代码是开放源代码,并且包含多个可用作参考的数据库提供程序。 可以在https://github.com/aspnet/EntityFrameworkCore中找到源代码。 查看常用的第三方提供程序(例如Npgsql、 Pomelo MySQL和SQL Server Compact)的代码可能也很有帮助。 特别是,设置这些项目是为了从和运行我们在 NuGet 上发布的功能测试。 强烈建议使用这种设置。
提供提供程序更改的最新状态Keeping up-to-date with provider changes
从2.1 版本开始,开始使用后,我们创建了一个可能需要对提供程序代码进行相应更改的更改日志。 这旨在帮助更新现有提供程序以使用 EF Core 的新版本。
在2.1 之前,我们使用了providers-beware
和providers-fyi
标签作为 GitHub 问题,并提供了类似用途的拉取请求。 我们将 continiue 将这些标签用于问题,指出给定版本中的哪些工作项可能还需要在提供程序中完成工作。 providers-beware
标签通常表示工作项的实现可能会中断提供程序,而providers-fyi
标签通常意味着提供程序将不会中断,但可能仍需要更改代码,例如,启用新功能。
建议的第三方提供程序命名Suggested naming of third party providers
建议为 NuGet 包使用以下命名。 这与 EF Core 团队传递的包的名称一致。
<Optional project/company name>.EntityFrameworkCore.<Database engine name>
例如:
Microsoft.EntityFrameworkCore.SqlServer
Npgsql.EntityFrameworkCore.PostgreSQL
EntityFrameworkCore.SqlServerCompact40