gpt4 book ai didi

c# - 将 Dapper 与 Oracle 结合使用

转载 作者:可可西里 更新时间:2023-11-01 08:20:09 33 4
gpt4 key购买 nike

我们使用 Oracle 作为我们的数据库供应商,并研究了用底层使用 Dapper 的更健全的基于存储库的模式替换我们的一些数据访问层(难以维护,更难合并 XSD)。但是,我们在将它与 oracle 一起使用时遇到了一些问题。

  • 命名参数:这些似乎被忽略,无论何时在查询中使用它们时,Oracle 似乎都以它喜欢的任何顺序解释它们。 SqlMapper 返回正确命名的参数,它们只是在 Oracle 中没有被正确解释

  • 变量的“@”命名约定与 oracle 命名参数不兼容。它期望在任何参数前面看到“:”

有没有人以前遇到过这个问题并且有任何解决方法?

最佳答案

IMO,这里正确的方法是(根据已接受的答案)使用数据库特定参数前缀(所以 @ sql-server, : for oracle) - 而是:完全不使用前缀。所以最终这是:

il.Emit(OpCodes.Ldstr, prop.Name);

(等)

特别是,static 属性会很糟糕,因为它会限制您在每个 AppDomain 中只能使用一个供应商。

Dapper 已根据此更改进行了更新。它现在还动态检测 BindByName 并相应地设置它(所有这些都不需要引用 OracleCommand)。

关于c# - 将 Dapper 与 Oracle 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6212992/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com