如何在多数据库环境中使用Dapper?

时间:2014-03-19 04:42:46

标签: sql sql-server oracle dapper

我正在尝试实现像SELECT * FROM TABLE_X WHERE XID = @id这样的简单查询,但我遇到的问题是这些查询会针对不同的应用程序实例在不同的数据库(SQL Server和Oracle)上运行。

如何在不必为每个数据库编写一组新查询的情况下执行此操作?

2 个答案:

答案 0 :(得分:1)

Dapper对数据库非常关闭,并允许您利用特定于特定数据库的纯sql技巧。在我看来,你应该使用一个查询对象模式,所以你将在每个提取/提交之前有一个接口,可能会改变SQL / Oracle。

答案 1 :(得分:0)

我已经下载了SqlMapper.cs的代码并入侵了SetupCommand以检查该命令是来自Oracle还是SQL Server。

这就是我所做的:

if (cnn.GetType().Name.ToLowerInvariant().Contains("oracle")) { sql = sql.Replace('@', ':'); }