2012-02-13 7 views
0

あなた自身のDBを作成するための合理的な方法があることを知りたいですか?企業DbContextCREATE MyDatabaseCREATE Table1、mabye InitializeDatabaseの方法はありますか? 私はPOCOを使ってEF 4.1を知っていますが、DBの初期化中にいくつかのイベントを生成したい場合(編集を参照)、おそらく私のコードでDBを生成したいと思うようです。エンティティのフレームワーク、POCO、コードで独自のDBを作成しますか?

DB作成の進捗状況をエンドユーザーに報告したいのであれば、データベースAntテーブルを自分のコードに作成する必要があります。そのためには、データベース(テーブルではありません)を作成する方法を理解する必要があります。コード。

私が試してみた:

public void InitializeDatabase(MyContext context) 
{ 

    context.Database.ExecuteSqlCommand("Query to create table"); 
} 

をしかし、問題は、私はテーブルを作成するために、第1のデータベースを作成する必要があるということですが、それを行う方法?それとも、私がしたいことをするためのより良い方法がありますか?

EDIT:

はい、私はPOCOは自動的に私のためにそれを行うだろう知っているが、残念ながら、私は/ POCOと私のコードでデータベースとテーブルを作成したい必要かと思われ、その理由は、私が欲しいということですDBの作成/フレーズの初期化中の進捗状況を表示しますか?私が出てくる唯一の方法は、データベースを作成し、自分のコードを使ってテーブルを作成し、各テーブルを作成した後にイベントを生成することです。

答えて

0

Entity Frameworkは、構成したデータベースを接続文字列に作成しようとします。サーバーに接続するユーザーにデータベースを作成する権限があることを確認してください。

0

あなたがしていることは、Entity Framework Code Firstのようです。

必要に応じて、Model Builder Seedメソッドでデータベースおよび/テーブルを作成できます。

唯一の目標は、ユーザーに進捗状況を報告することである場合は、独自のクエリを使用してデータベースを作成する必要はありません。これはModelBuilderOnModelCreatingを使用して行うことができます。

0

はい、私はPOCOは自動的に私のためにそれを行うだろう知っているが、残念ながら、私もPOCO

ハズレで自分でデータベースとテーブルを作成する必要がないということですね!少なくとも、Entity Framework 4を使用している場合ではありません(Visual Studio 2010が必要な.Net 4.0に同梱されているバージョン.VS 2008は.Net 4.0を使用できません)

コードファースト開発と呼ばれています。基本的には、データクラスを記述し、Entity Frameworkは、クラスの関係、プロパティ名、およびオプションのEF固有の属性に基づいてデータベース構造を自動的に推測します。その後、自動的にデータベースを作成します(自動マイグレーションのサポートは最小です... for now

コードファーストherehereについて簡単なチュートリアルがあります。

+0

ありがとうございます。私はPOCOが正常に動作しており、デフォルトでDB構造を生成しています。私の問題は、各テーブルが生成された後にイベントを生成する必要があるため、自分自身でDBとテーブルを生成したいのですが、どうすればいいですか? –

関連する問題