0

誰かが私を助けてくれることを願っています。私はCodeFirstEFMVC4プロジェクトを作成しました。これで、SeedメソッドとDropCreateDatabaseAlwaysを使用するDbInitializerを使用して、データベースにデータを挿入しました。ただし、Asp.Net Webサイトによると、公開時にデータベースをシードするすべてのコードを削除する必要があります。

私の質問は、毎回追加することなく、つまり1回限りの方法でシードメソッドを使用できない場合、(シードメソッドと同じプロセスで)データベースにデータを追加するにはどうすればよいかということです。データベースエクスプローラーまたはSQLServerManagement Studioを介してデータベースに追加する以外に方法はありませんか?

また、2番目のDbInitializerを作成する価値があるので、すべてのシードコードを削除したくないので、テスト用とリリース用に1つずつありますか?

4

1 に答える 1

0

これに対する私たちのアプローチは、開発環境を空のライブデータベースに接続し、createメソッドとseedメソッドを実行し、コードを編集してそれらを削除してから、アプリサーバーにプッシュし、データベース権限を適切に減らすことです。

DBAが許可しないためにこれを実行できない場合、他のアプローチは、開発サーバー上にシードされたデータを備えたバージンデータベースを作成し、DBAにデータベースをバックアップしてライブ環境に復元することです。

基本的に、ライブアプリに作成コードとシードコードを残すことはお勧めできませんが、コードファーストの方法論を使用してライブデータベースを作成してシードする方法はまだあります。

また、移行の使用についても検討します。これらは、コードファーストメソッドとすべて同じ機能を提供しますが、よりきめ細かい制御と必要な権限が少なくなります。

于 2012-12-05T13:30:39.990 に答える