2010-12-13 16 views
1

hello 私のエンティティのedmxファイルに従ってデータベース構造を変更したいですか? 私はデータベースを作成する方法を知っている:?エンティティ内のデータベースを変更

if(myEntity.DatabaseExists()) 
{ 
    //????? 
    //check database if there is any change in database alter database according to edmx file.  
} 
else 
{ 
    myEntity.CreateDatabase(); 
} 

私は私が私のprogram.I利用エンティティの新しいバージョンをインストールしたいと私のEDMXファイルは私のデータベースを変更する必要がありますので、変更されているこれを行うにはしたくない理由私の新しいedmxファイルによると

答えて

1

Entity Frameworkはこれをサポートしていません。この「機能」が欠けている理由は、そうするのが簡単ではないからです。 EFが本番データベースを変更し、データを含む列を削除するようにしますか?私はそうは思わない。

あなたが行う必要があるのは、データベーススキーマを更新できるスクリプトを作成することです。これを自動的に実行したい場合は、データベースにスキーマのバージョン番号を保持する「バージョン」テーブルを追加できます。起動時に、バージョン番号を確認し、(トランザクション内の)新しいバージョンのすべてのスキーマ更新スクリプトを実行することができます。

私は常にSQL Server Management Studioを使用して自分のスキーマに加えた変更を記録するためにMicrosoft SQLプロファイラを使用します。 SQL Compare(RedGate)のようなツールを使用して、2つのデータベースを比較し、変更のスクリプトを生成することもできます。

EFは自動的に更新プログラムを実行できません。これらのデータベーススクリプトを自分で実行する必要があります。

+1

+1。 FYI:EFモデルの変更スクリプト(テーブルの変更など)を生成できるツールの1つが、VS2010用のアドインです。http://huagati.com/edmxtools/ – KristoferA