Dynamical SP with Entity Framework

Finally, the issue that the dynamical Sp not working on Entity framework is fixed by putting  'SET FMTONLY OFF' in the beginning of the stored procedure. 


When entity framework tries to retrieve columns from stored procedure it calls SET FMTONLY ON and after that executes the stored procedure. When FMTONLY is ON execution returns only metadata and it doesn't work with some advanced construction in stored procedures - for example dynamic SQL, temporary tables and also table variables.

You have three choices:

  • As described in another answer add SET FMTONLY OFF at beginning of your stored procedure. This will cause your stored procedure to really execute so make sure it only reads data - any insert, update or delete will be executed each time you try to retrieve columns!
  • Manually define complex type
  • Modify your stored procedure to not use any of this features
Reference: http://stackoverflow.com/questions/5997033/entity-framework-cant-handle-a-simple-table-variable

你可能感兴趣的:(Database,EF,SP)