使用Dapper从SQL Server迁移到Postgres

时间:2019-03-20 22:00:14

标签: sql-server postgresql dapper

我们当前的数据库位于SQL Server中,我们计划在将来迁移到Postgres。

对于新应用程序,通过Dapper(微型ORM)之类的东西写出所有数据库调用是否有意义?一旦我们从SQL Server迁移到Postgres(假设保持相同的架构),那么最后更改连接字符串和连接对象就这么简单吗?

我没有Postgres数据库来测试该理论。我只想确保一旦完成此设置,就不会感到任何意外。 任何对此和/或示例的见解将不胜感激。

注意:我当前的应用程序将执行很多读取操作,而实际上没有写入操作。这就是为什么我将Dapper视为ORM解决方案。

1 个答案:

答案 0 :(得分:0)

  

一旦我们从SQL Server迁移到Postgres(假设保持相同的架构),那么最后更改连接字符串和连接对象就这么简单吗?

否;这不是那么简单。 Dapper不会为您生成查询。您可以自己编写每个查询。另外,SQL Server和Postgres中的语法也有所不同。因此,您为一个RDBMS编写的查询可能无法与其他RDBMS一起使用。

您可以通过多种方式处理此问题:

    当然,请检查每个查询是否适用于新的RDBMS。如果没有,请更正。
  1. 如果将所有查询与业务逻辑(可能是DAL层)分开,那么此审核过程将很容易。您可以为每个RDBMS构建两种DAL变体。
  2. 升级到更高版本-Dapper Contrib可能是?它支持有限RDBMS的查询生成;不知道是否包括Postgres;没用过。 Dapper有类似的附加组件,可以支持查询生成。
  3. 升级到实体框架或NHibernate之类的完整ORM。