2011-10-28 20 views
0

モデルからデータベースを作成する方法についていくつか質問があります。モデルからのEntity Frameworkデータベース

これは実行時に実行できますか?私はあなたがデザイナーでSQLを作成することができますが、実行時にはどうなるのでしょうか?

接続を作成せずにDDLを作成できますか? DDLを作成する唯一の目的のために接続を追加するのはちょっと気になりません。

変更を自動的に処理する方法はありますか?エンティティ/テーブルを更新する場合は、手動でテーブルを変更する必要がありますか、それを処理するためのものがありますか?

sqlceのEntityContext.CreateDatabaseではどうなりますか?私がそれを呼び出すとき、私は文脈を作り直す必要があります。そうでなければ、彼らは既に存在しているので、テーブルを作成することはできません。しかし、挿入されたデータは保存されないため、実際には存在しません。

答えて

2

もちろんです。あなたは、コンテキストを再作成することによって

 

static EntityContext() 
{ 
//for example to create a db: 
Database.SetInitializer(new CreateDatabaseIfNotExists()); 
} 
 

どういう意味ですか?あなたのデータベースが存在しない場合は、あなたのコンストラクタで を指定した場合には、それを作成しますか。データベースを指定した場合。初期設定では、SQL CEデータベースが作成されます。残念なことに、このモデルは最初の変更元になります。 将来の変更は、データベースとモデルの両方に行う必要があります。

あなたのSQL CEの接続文字列は次のようなある:「名前」は、コンテキストクラスの完全な名前空間と一致している必要があり

<add name="EntityDemoSite.DataAccess.EntityContext" connectionString="Data Source=|DataDirectory|test.sdf" providerName="System.Data.SqlServerCe.4.0" /> 

なお。

+0

linq2sqlを処理するだけであることは明らかです。 SqlCe EFは、明らかにCreateDatabaseへの呼び出しをサポートしていません。では、データベースやモデルの更新を簡単に行う方法はありますか?私が既存のエンティティにいくつかのプロパティを追加すると、これらの列を持たない古いデータベースではどのように動作しますか? – Will

+0

私は "Database.SetInitializer(new CreateDatabaseIfNotExists ());"しかし、私はまだ "デ​​ータベースファイルが見つかりません"を取得します – Will

+0

私は今、データベースファイルを作成するためにSqlCeEngineを使用すると思います。デフォルトで – Will

関連する問題