Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Update database schema in Entity Framework

I installed VS SP1 and played around with Entity Framework.

I created a schema from an existing database and tried some basic operations.

Most of it went well, except the database schema update.

I changed the database in every basic way:

  • added a new table
  • deleted a table
  • added a new column to an existing table
  • deleted a column from an existing table
  • changed the type of an existing column

The first three went well, but the type change and the column deletion did not followed the database changes.

Is there any way to make is work from the designer? Or is it not supported at the moment? I didn't find any related material yet, but still searching.

like image 278
Biri Avatar asked Aug 15 '08 11:08

Biri


3 Answers

I would guess that possibly those don't happen because they would break the build for existing code, but that's just a guess on my part.

Here's my logic:

First, EF is supposed to be more than 1:1 table mapping, so it's quite possible that just because you are deleting a column from table A doesn't mean that for that entity, there shouldn't be a property Description. You might just map that property to another table.

Second, changing a type could just break builds. that's the only rationale there.

like image 193
Darren Kopp Avatar answered Oct 08 '22 01:10

Darren Kopp


I've found that, in general, there are still quite a few bugs with the 'Update Model from Database' functionality.

Keys are the killer for me - I've yet to have any modification I make to a foreign-key relationship or to add a Primary Key to a table and have the updater work correctly (in that it will give a compile error on the generated code) - but to solve the problem it's a simple matter of deleting the model and re-importing (only takes a minute) - this is less than ideal obviously, but I've never had a failure from a 'fresh' import.

like image 23
scotta Avatar answered Oct 08 '22 00:10

scotta


From the demos of the designer I've seen, it's not a flawless tool. It is a version 1.0 product, so it's bound to have some pain points. The change type is one of them it seems. From watching the designer and the code generation, I figured that one would break either at compile time (not likely) or at run-time (when the model is actually executed).

like image 45
Chris Patterson Avatar answered Oct 08 '22 00:10

Chris Patterson