2010年11月25日

LINQ to SQL 番外編 - データベースの作成

   このエントリーをはてなブックマークに追加 Clip to Evernote
DataContext の CreateDatabase() メソッドを呼び出すことで、データベースの
新しいインスタンスを作成することが可能です。
「LINQ to SQLエンティティクラス」には、データベースのテーブルやカラムに関する
属性があるので、この情報を利用して、データベースのインスタンスを作成します。


「LINQ to SQLエンティティクラス」の定義

ここでは、方法 : データベースを動的に作成する (LINQ to SQL)に記載されている「LINQ to SQLエンティティクラス」を拡張し、
リレーショナル構造をもった「LINQ to SQLエンティティクラス」を定義してみました。

上記記事の例との意違いは、
・Categoriesテーブルを追加
・DVDテーブルに、CategoryIDカラムを追加
・DVDテーブルと、Categoriesテーブルを関連づけ
です。

DataContextの定義

DataContextを継承し、カスタムのDataContextクラスを定義します。DataContext派生クラスには、
作成する上記テーブルをメンバーとして宣言します。

データベースを作成するコード

以下、データベースを作成するコードです。
この例では、DatabaseExists()で、データベースの存在を確認し、存在していた場合は、
DeleteDatabase()で、データベースを削除後、CreateDatabase()でデータベースを
作成するようにしています。



 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/52093064