据我所知,实体框架的全部目的是简化和统一数据访问模型。
我下载了最新的Oracle的.net工具(ODAC 11.2 Release 4),该工具声称支持EF4,我正试图导入一些Oracle存储过程(通过函数导入),该过程将一个ref游标作为输出参数。当我阅读甲骨文网站上的文档时
它说我必须在app.config中定义ref游标返回的每个字段。好这是非常愚蠢的,使整个Entity框架对Oracle毫无用处。
我是不是错过了什么?
实体框架的全部目的是简化和统一数据访问模型
理论上是的。在实践中,MS以MS工具为目标=它们只支持SQL server和SQL server CE功能。如果其他数据库提供了一些特殊的附加功能,它们要么在EF中不可用,要么必须以某种方式被黑客入侵。
具有一个ref游标作为输出参数的存储过程(通过函数导入)。
这就是这种特征的例子。我不知道从SQL server中的存储过程返回数据库游标的可能性,EF真的不支持这一点。
它说我必须在app.config中定义ref游标返回的每个字段。。这是非常愚蠢的,使整个Entity框架对Oracle毫无用处。
但这不是EF的问题,而是Oracle如何构建API来使用它的问题。配置中描述了光标结果的映射。
我百分之百同意你的意见。Oracle的EF实施非常缺乏。映射是愚蠢的,容易出错,维护起来很麻烦。Oracle至少应该提供一个生成器工具,用于对SP代码进行逆向工程并创建映射。即使不可能实现完美的映射,这也是一个开始。此外,它不支持功能,而且我们的Oracle标准尽可能支持功能而非SP。返回多个refcursors也是不可能的。