Aximili
Aximili

Reputation: 29474

Stored procedure into Entity Framework model

Can you add a stored procedure into an Entity Framework model (Model.edmx)?

I just did it in Visual Studio 2010, like this (except my stored procedure is now off the Add tab and is in the Refresh tab)

VS screenshot

My stored procedure is a simple SELECT statement, taking 1 parameter.

VS2010 seems to have added it into the Model, but I wonder where it is and how I can use it?

I can't see it anywhere in the diagram nor in Model.designer.cs

Upvotes: 2

Views: 7435

Answers (3)

Ema.H
Ema.H

Reputation: 2878

Complement for previous answer:

If need, not an entity but juste create a complex type (you can create it in complex type folder in model explorer) and associate it to your stored procedure if your returning dataobject doesn't match with a table of your DB, example:

http://img46.imageshack.us/img46/9168/j4ax.jpg

Upvotes: 1

mcalex
mcalex

Reputation: 6778

From the model diagram, right click and select Model Browser (or View/Other Windows/Entity Data Model Browser from the menu). In the Model.Store section, you should see Tables/Views, Stored Procedures/Functions and Constraints. Your stored procedures will be in the Stored Procedures/Functions section.

Check this link for a good explanation of how to use stored procedures with EF: http://msdn.microsoft.com/en-us/data/gg699321.aspx

Upvotes: 1

Darren Reid
Darren Reid

Reputation: 2322

You part the way there. It's a bit of a hidden process and multi-stepped. You have to include the Stored Procedures in your model by selecting them in the menu you have shown above.

Once you have done that you want to view the 'Model Browser'

pic of model browser

Then in the Model Browser, find the Model Store (This will have folders like 'Tables / Views'). Right click on your Stored Procedure and select 'Add Function Import'.

pic of context menu for function import

Once you have done this, you can map the Entities you will get back from your SP.

pic of function import dialog

You will then be able to access your entities via your Context in code, in a strongly typed way. Hope that helps.

Upvotes: 9

Related Questions