?
Solved

Mapping CRUD SPs to Entity Framework table objects

Posted on 2014-02-26
2
Medium Priority
?
1,173 Views
Last Modified: 2014-03-13
I am using CRUD stored procedures toa carry out changes to my data.  I see how you are supposed to map the parameters to the EF table's fields.  My question comes because I have an extra field in the Stored Procedure that does not map to the table reflecting the userRecID of the person making the change.  (That is because this has to be stored in a tracking table in the database.)

However, when I tried to set the mapping I would get errors because there was not a one to one correspondence between the parameters and the columns.  

In this MSDN article ¿http://msdn.microsoft.com/en-us/data/gg699321.aspx in the section entitled "Mapping Modification Stored Procedures to Entities"

it states:

Now you’ll modify the model so that the Entity Framework will use the UpdateOrder stored procedure defined in the database instead of generating its own command. You’ll do this by mapping the UpdateOrder stored procedure to the Order entity in the designer. This is referred to as Stored Procedure Mapping or Function Mapping.

1.In the designer, right click on the Order entity and select Stored Procedure mapping.
2.Click select Function="" Insert="" and then click the drop down arrow that appears. This exposes the list of all Functions found in the Store metadata.
3.Select InsertOrder from the list. The designer will do its best job of matching the stored procedure’s parameters with the entity properties using the names. In this case, since all of the property names match the parameter names, it maps every one correctly so you don’t need to make any changes. One thing that the designer was not able to map is the newly generated SalesOrderID returned by the stored procedure. This is because the designer is not able to automatically detect the name of the field being returned.
4.Under the Result Column Bindings section, click add Binding="" Result="" and enter SalesOrderID. The designer should automatically select the entity key property, OrderID, for this final mapping.
When completed, Figure 6 displays what the mapping should look like.

However when I follow this process because my stored procedure contains an extra parameter I get the error, "Error 2037: A mapping function bindings specifies a function VFS_ProcurementTrackModel.Store.prc_ext_Requirement_Insert but does not map the following function parameters: UserRecID."

This has me stymied in attempting to "map" the prc_ext_Requirement_Insert stored procedure to the prc_Requirements Entity.

How do I get around this?
0
Comment
Question by:Edward Joell
  • 2
2 Comments
 

Accepted Solution

by:
Edward Joell earned 0 total points
ID: 39926896
After extensive discussion on www.Asp.Net it was developed that the answer is "you can't get there from here".

So I will instead have to import my stored procedures as functions and call them to carry out my update activities.  I have to build my own custom objects to implement these crud calls.  I will only be able to use EF only as a means of build models of my tables and nothing else.  I would be able to use any of the EF objects' savechanges methods or if changed properties.
0
 

Author Closing Comment

by:Edward Joell
ID: 39926899
Essentially I am making the best of a bad deal.
0

Featured Post

Upgrade your Question Security!

Add Premium security features to your question to ensure its privacy or anonymity. Learn more about your ability to control Question Security today.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
This article aims to explain the working of CircularLogArchiver. This tool was designed to solve the buildup of log file in cases where systems do not support circular logging or where circular logging is not enabled
This video shows how to quickly and easily deploy an email signature for all users in Office 365 and prevent it from being added to replies and forwards. (the resulting signature is applied on the server level in Exchange Online) The email signat…
With just a little bit of  SQL and VBA, many doors open to cool things like synchronize a list box to display data relevant to other information on a form.  If you have never written code or looked at an SQL statement before, no problem! ...  give i…
Suggested Courses

862 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question