【发布时间】:2021-05-12 01:49:29
【问题描述】:
我公司的主要软件应用程序已经二十年没有更新过了。我预计很快就会对它进行彻底的重写。为此,我开始阅读 Adam Freeman 的《Pro ASP.Net Core 3》一书(第 8 版)。
我们的应用程序被编写为独立于特定的数据库类型。我们的大多数客户使用 PostgreSQL,但也有少数使用 SQL Server。因此,我们使用 ODBC,因为这两个数据库以及其他几个数据库都存在 ODBC 驱动程序。该应用程序没有对数据库做任何花哨的事情,而 ODBC 运行良好。我们将 ODBC DSN 配置为与客户拥有的任何数据库进行通信,并且无需更改应用程序本身。
对“Entity Framework Core ODBC”的搜索将我带到了 EF Core Github,在那里人们提出了类似的问题,答案大多是“你到底为什么要这样做?”。好吧,我需要这样做。
我能否将 EF Core 与 ODBC 一起使用,或者是否有其他方法可以设置在底层数据库从 PostgreSQL 更改为 SQL Server 时无需修改的 Entity Framework Core 应用程序?
【问题讨论】:
-
答案是一样的——甚至不要那样做。为 EF Core 编写自己的 ODBC 提供程序大约需要几个月的时间才能修复错误。你真的要参加那个赌博?当前的 SQLServer 和 PostgreSQL 提供程序比 ODBC 更快。是的,如果没有提供程序特定的映射和类型,您可以在 SQLServer 和 PostgreSQL 之间切换。
-
感谢您的回复。不,我绝对不想费心编写自己的 ODBC 提供程序。我是否需要为 SQL Server 和 PostgreSQL 数据库单独构建,或者有没有办法使用 EF Core 创建一个可以与其中任何一个一起使用的程序,仅取决于 applicaton.json 文件中的连接字符串?
标签: entity-framework-core odbc