46

I'm using the Entity Framework (EF) to create a complex type from a stored procedure. Recently, the stored procedure changed (more return values were added. I would like to update the complex type that maps to this stored procedure. Is this possible and if so, how? I am currently deleting my function import and complex type each time a stored procedure changes, which is most likely not the best approach.

Halcyon
  • 14,631
  • 17
  • 68
  • 99

2 Answers2

129

I found another way of doing this without deleting the complex type. You can update your Complex Type and Visual Studio will add any changed columns. Here's how:

  1. Open your .edmx file and go to the model browser.
  2. If your stored proc changed, right-click on any white area in the model browser and select Update Model From Database, click "Finish". This will refresh your stored procedure.
  3. Now drill down into XModel.edmx > XModel > EntityContainer:XEntities > Function Imports (X is your entity name) and right-click the one that you need to update. Select Edit.
  4. Click "Get Column Information". Now, next to the Complex Type radio button, there is a Update button. Press this to update your complex type and then press the OK button.

That should do it!

Rocker2000
  • 30
  • 6
Halcyon
  • 14,631
  • 17
  • 68
  • 99
0

There is an easier way to achieve that, look here at SO. It adds some meta information to the stored procedure, which the EF uses to generate the appropriate return type for you.

The meta information part of the stored procedure is not executed, it just tells about which columns and datatypes it returns.

Community
  • 1
  • 1
Matt
  • 25,467
  • 18
  • 120
  • 187