Reflecting changes made to stored procedure in Entity Framework-generated complex type

Viewed 16870

So I've got a DB in SQL Server that I'm connecting to and using Entity Framework 4.1 to generate my POCO classes, which works generally pretty well. There are also stored procedures that I am using the 'function import' feature to create retrieve the resulting rows of data from calling them. Essentially the process I'm using is to:

  1. Right-click on the Model.edmx and choose "Function Import..."
  2. Pick the procedure from the dropdown
  3. Enter my desired Function Import Name
  4. Click "Get Column Information"
  5. Click "Create New Complex Type"
  6. Click "OK"

and that will create a POCO class for the result set definition and I can do something like:

var query = context.GetMyStuff().AsQueryable();

to retrieve the results. This seems to work just fine.

Now the trouble I'm having is when I try to modify a stored procedure and then get the changes to propagate to my code. For instance, I added an additional column to a table and then updated the stored procedure to return that column data as part of the results. I don't see how to make that update propagate into the function import stuff, i.e., get the generated POCO to have a new property for that added column.

What's the drill to make that update to the procedure reflect back in C# side? Am I going to have to make a new class each time? Wasn't obvious to me how to do this.


Additional Info:

When I've tried to "Update" the Complex type, as suggested in the response by Ladislav to this question, I get an error message "Verify that the FunctionImport name is unique."

If I try what E.J. Brennan suggests below, I get the same error message.

What does work, at least for me, is to open the Model.edmx file in Notepad++, find the FunctionImport line and delete it then regenerate it. That's not ideal, but it worked.

5 Answers
Related