I am trying to access a Store Procedure from EntityFramework.
I have followed these steps:
First of all I have created the Stored Procedure in the Azure Data
Working with oracle db on devArt, EF 5.0. What solved it for me is to remove said stored procedure from the model, and then re-add it. Make sure that the stored procedure compiles correctly in the DB, or you wouldn't have the option to add it to the model.
I had this error:
The function import *XXX* cannot be executed because it is not mapped to a store function.
when I check, my stored procedure was deleted from database. I created it again, and it fixed the error.
When you open the edmx explorer (Diagram Mode), you will see the model explorer window on the side of you diagram.
On the Function Import Section try to find your stored function. Right click on it, then you can modify it.
A Window will be opened, then choose your stored function. a function will mapped after That
Voila, it works for me.
This post should be a comment but I don't have enough rep to comment.
I was having a similar issue. My stored procedures were visible and yet I was still getting the error. This question and answer from Alex led me to look under Function Imports in the Model Browser and I saw that I had multiple entries for each of the stored procedures. They had sequence numbers to prevent them from being true duplicates. I removed everything under Function Imports and everything under Stored Procedures / Functions and then re-added them by updating the model from the database. My issue is now resolved.
If anyone still faces the same issue, perform the following two steps in the Model Browser
Then add it again as we do initially
You may want to refer to this blog post: FunctionImport is not mapped to a store function Error, that discusses a similar problem. The cause apparently being:
I had to make changes to a stored procedure and it got deleted from the Entity Data Model Xml file (*.edmx)
With the following step-by-step solution:
There is an easy solution to fix that error. First open your edmx file and right click on the model that owns the stored procedure. Click Add then select “Add Function Import”.
Add the same Function Import name that is used in your Context file (if like me, the method was already created but messed up, otherwise is all new and it will be recreared anyways). Select the Stored Procedure Name that you are trying to fix. Choose the Entities and click OK. A new window might pop up “Verify that the FunctionImport name is unique”.
If that is the case, and you get the “Verify that the FunctionImport name is unique” window popup, do the following: Open your *.edmx file and right click over the model you want to update. Select “Show in Model Browser”. Now the Model Browser window opens up. Go to: {myProject}.DataModel > EntityContainer: {somethingEntities} > Function Imports. The function import causing the problem should be there, just delete it and save the *.edmx file.
Try to add the Function Import again. Voila! no issues this time. Save the *.edmx file and recreate the context file (by making a simple non-invasive change like adding a space to the {myProject}.Context.tt file). make sure the new method:
public virtual ObjectResult<MyEntity> <MyEntity>_NameoftheSP(parametets)
is present in your Context file.
Another troubleshooting resource with similar step-by-step instructions (and images!) on updating the edmx file: The function import cannot be executed because it is not mapped to a store function.