Jimi
Jimi

Reputation: 53

Poco + SqlQuery using Entity Framework 4.1 + Oracle SP with ref cursor output param

I'm currently trialling Entity Framework 4.1 with VS2010 to determine its suitability for our needs. In particular, I'm trying to work out if there's an easy way to load entities from ref cursors returned by Oracle stored procedures.

This Question seems to suggest that to do it using Function Imports requires adding a bunch of metadata information to the .config (less than ideal).

Is there a code-first (code-first as in, pre-existing db defined using POCOs instead of a model) alternative to this path, using an overriding call something like what is discussed here? I have had no success modifying the example to work with Oracle so far, so am wondering if it's a dead end.

Upvotes: 0

Views: 1900

Answers (1)

divega
divega

Reputation: 6476

Jimi,

Just in case I wasn't clear in my blog post, the SqlQuery and ExecuteSqlCommand methods I describe are "escape hatches" that allow for low level data access through the same ADO.NET connection maintained by EF, but bypassing all the O/RM mappings.

Currently the Code First API does not allow defining function imports in the model, therefore this low level API is the only option if you need to invoke stored procedures in a Code First app.

However if you use XML metadata to define the model (e.g. using the Entity Designer included in Visual Studio to create an EDMX file) you should still be able to define function imports in the model and use POCO classes and the DbContext API of EF 4.1 (you will need to add the DbContext Template from the Online gallery using the "Add Code Generation Item" option in the designer as described here: http://blogs.msdn.com/b/adonet/archive/2011/03/15/ef-4-1-model-amp-database-first-walkthrough.aspx).

In any case, I have not tried code like the one in my blog post with the Oracle provider, nor with ref cursors.

I will point this question to some contacts, and I hope they will be able to help you more.

Upvotes: 1

Related Questions