在Oracle上使用Dapper进行简单的INSERT

时间:2018-11-05 07:57:20

标签: oracle

我想使用Dapper将数据库不可知代码用于例如PostgreSQL和Oracle带有尽可能少的数据库修饰代码。对于SQL Server和PostgreSQL,此INSERT代码正在正常运行:

var item = new Item { Name = "Test Name", Number = "Test Number" };
await Connection.ExecuteAsync(@"INSERT INTO Table (Name, Number) VALUES (@Name, @Number);", item);

在Oracle(版本11 xe)上,我得到了ORA-00936:缺少表达式。

我需要使用DynamicParameters之类的工具进行剪裁吗?

1 个答案:

答案 0 :(得分:0)

您需要在查询参数前使用:而不是@。这是甲骨文的事情。

var item = new Item { Name = "Test Name", Number = "Test Number" };
await Connection.ExecuteAsync(@"INSERT INTO Table (Name, Number) VALUES (:Name, :Number)", item);