Reputation: 29474
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)
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
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
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
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'
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'.
Once you have done this, you can map the Entities you will get back from your SP.
You will then be able to access your entities via your Context in code, in a strongly typed way. Hope that helps.
Upvotes: 9