用于 Oracle 的无参考 .NET ORM

Posted

技术标签:

【中文标题】用于 Oracle 的无参考 .NET ORM【英文标题】:Reference-Less .NET ORM for Oracle 【发布时间】:2011-07-05 11:54:21 【问题描述】:

我想知道是否有人知道与 Oracle 兼容的 .NET 的 ORM。

这就是问题所在,我不想在我的数据抽象层中添加对任何第三方库的引用。

我使用过 Telerik 的 OpenAccess ORM,效果很好;除了我必须在我的项目中添加对 Telerik 的 DLL 的引用。

由于我只是从 Oracle 调用存储过程,因此我不需要现代(尽管很重)ORM 附带的增强型 LINQ 功能。

我或多或少在寻找一个代码生成器,它可以检查 Oracle 并允许我选择我想使用的包/程序,然后最好使用 Oracle.DataAccess.Client 生成方法来调用程序。

我目前正在手动创建这些方法,但跟踪变量名和包名变得越来越麻烦。

有没有人知道任何可能有帮助的事情?

谢谢!

杰弗里·凯文·普瑞

【问题讨论】:

为什么不能添加参考?您是否想让这变得比需要的更难? 因为现实世界的应用程序不应该有我们无法控制的程序集引用。我想生成访问方法,然后能够在需要时更改源。在 PL/SQL 中编写代码以生成包访问代码确实并不难,但是,我问的是是否已经存在某些东西。此外,添加对 ORM 工具的引用会降低性能,因为所有代码/映射都发生在其中,然后最终发送到 Oracle.DataAccess.Client。我要消除中间人。 不知道你从哪里得到这样的印象——现实世界的应用程序往往有很多无法控制的引用,从 .NET BCL 开始。至于性能,我会打赌那些写出好的 ORM 的人会胜过我的一般技能。 【参考方案1】:

如果您不想添加引用,请使用反射和动态加载程序集并调用方法并将参数传递给它。会有更多的 PITA,代码将难以阅读、管理或调试

【讨论】:

我不确定您的回答是否能解决我的问题。我不能对外部 Oracle 数据库使用反射。我说的是一种通过查询 Oracle 的 user_arguments 视图来生成访问过程的工具。

以上是关于用于 Oracle 的无参考 .NET ORM的主要内容,如果未能解决你的问题,请参考以下文章

什么是 Oracle 中的无错误错误

oracle数据库怎么net manager配置监听

Oracle 快速连接故障转移不适用于 ODP.NET。获取连接请求超时错误

oraclenetmanager不能创建服务名

不是 Python 中的无测试 [重复]

Protobuf-net“找不到二进制的无参数构造函数”