Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Database First Entity Framework Update Model is not working: What can be the reason?

I have an existing MVC 3 application using entity framework 4. The model was generated using a Database-First Mode. I have also "automatic code generation" that generate the class.

Today, I did a simple modification to my database. A field went from "int" to "float". I went to the .edmx, did a right-click, Update model from database...

But when I look at the field, it didn't change at all. I double-check everything,and the database is modified, but the model never change... Does it mean I need to do this by hand?

I remember that I did a couple of update before (like 2 months ago) and it seems to work at the time... What can be broken that I need to check?

EDIT

When looking at the edmx diff file in subversion, the change seems to be done but when looking at it in "graphical mode", the change is not there. Also, no generated code is updated.

-          <Property Name="PreparationTime" Type="int" Nullable="false" />
+          <Property Name="PreparationTime" Type="float" Nullable="false" />
like image 722
Jean-François Côté Avatar asked May 29 '13 00:05

Jean-François Côté


4 Answers

This is the normal behavior. ;-)

Your conceptual model will not change if you just modify something DB side, even if you perform the "Update model from database" wizard. Please have a look at this SO answer where I explain how an EDMX is built and how it should evolve.

like image 153
MaxSC Avatar answered Oct 16 '22 11:10

MaxSC


Check List

  • Check Output window for any error occurred during command Update model from database
  • Check your database connection string from .edmx property window
  • Any custom code generation template that's causing it?
  • Backup a copy of your .edmx, then try removing the modified entity from .edmx and re-add it back
like image 30
Neverever Avatar answered Oct 16 '22 11:10

Neverever


Try this hack from MSDN

1.Build the project after updating EDMX file.

2.Right click your .tt file in solution explorer.

3.Select "Run Custom Tool" option.

like image 32
Lawal Avatar answered Oct 16 '22 11:10

Lawal


I know this is an old question, but since the given answer did not work in my case, I thought I'd just leave my solution here for others with a similar issue.

Assuming you are working with SQL Server Management Studio:

  • Right click "Database Diagrams" and select "New Database Diagram".
  • Include all the tables (except for "__MigrationHistory", if present) and press "Add".
  • Try to update your EDMX again.

For me, this was the solution, after months where I'd been using work-arounds for a project where the edmx was crucial, but refused to update in a normal way anymore. A new co-worker mentioned this as possible fix. The hours I could have saved if I had known this earlier...

like image 1
Tybs Avatar answered Oct 16 '22 10:10

Tybs