0

我目前正在使用VS2010试用Entity Framework 4.1以确定它是否适合我们的需求。特别是,我试图找出是否有一种简单的方法来加载Oracle存储过程返回的引用游标中的实体。使用Entity Framework 4.1 + Oracle SP与参考光标输出参数的Poco + SqlQuery

This Question似乎建议使用函数导入来做到这一点,它需要在.config文件中添加一堆元数据信息(不太理想)。

是否有替代此路径的代码优先(代码优先,在POCO中定义的预先存在的数据库),使用重载调用,如讨论here?到目前为止,我还没有成功修改与Oracle合作的例子,所以我想知道它是否是一个死胡同。

回答

1

机米,

万一我不是在我的博客文章明确,SqlQuery类和ExecuteSqlCommand方法我形容是“逃生舱”,允许为维持通过相同的ADO.NET连接底层的数据访问由EF,但绕过所有的O/RM映射。

目前Code First API不允许在模型中定义函数导入,因此如果您需要在Code First应用程序中调用存储过程,则此低级API是唯一选项。

但是,如果您使用XML元数据来定义模型(例如使用Visual Studio中包含的Entity Designer创建EDMX文件),您仍然应该能够在模型中定义函数导入,并使用POCO类和DbContext API EF 4.1(您将需要使用设计器中的“添加代码生成项”选项来添加Online gallery中的DbContext模板,如下所述:http://blogs.msdn.com/b/adonet/archive/2011/03/15/ef-4-1-model-amp-database-first-walkthrough.aspx)。

在任何情况下,我没有尝试使用Oracle提供程序在我的博客帖子中的代码,也没有使用ref游标。

我会将这个问题指向一些联系人,我希望他们能够帮助您更多。

+0

感谢您的回复,divega。如果不清楚,我的问题的主要焦点是逃生方法是否与oracle提供者协同工作。 – Jimi 2012-01-20 00:02:12