.NET TIPS

O/Rデザイナで単数形のエンティティ・クラスを作成するには?[VS 2008]

デジタルアドバンテージ 遠藤 孝信
2008/10/02

 データベースのテーブルに英語の名前を付ける場合、テーブル名を「Orders」や「Customers」などのように複数形にすることがある。

 このようなテーブルをVisual Studio 2008のO/Rデザイナで取り込むと、「Ordersクラス」や「Customersクラス」といったエンティティ・クラスが自動作成される。しかし、エンティティ・クラスのインスタンスは通常、1つのレコードにマッピングされる(対応付けられる)ため、自動作成されるエンティティ・クラスの名前は単数形の名前の方が好ましい。

 次の画面は、Visual Studio 2008 Professional Editionでサーバ・エクスプローラからO/Rデザイナへ、authorsテーブルをドラッグ&ドロップにより追加したところだ。作成されたクラス(角の丸い四角形の図)の名前が「authors」となっているのが分かる。


O/Rデザイナでドラッグ&ドロップにより作成したエンティティ・クラス
既定では、テーブル名がそのままエンティティ・クラスの名前となる。なお、O/Rデザイナは、LINQ To SQLの利用時に、エンティティ・クラスを定義している「.dbmlファイル」を編集するために使用する。プロジェクトに.dbmlファイルを追加するには、「新しい項目」として、「LINQ to SQL クラス」を追加すればよい。

 Visual Studio 2008では、「s」または「ies」で終わるテーブル名のテーブルをO/Rデザイナに追加した場合、その名前を単数形にしてエンティティ・クラスの名前とする機能がある。ただしこの機能は英語版のVisual Studio以外では、既定でオフとなっている。

複数形対応のオプションの変更

 単数形の名前を付ける機能をオンにするには、メニューの[ツール]−[オプション]を選択して[オプション]ダイアログを開き、「O/R Designer」の項目で、「名前の複数形化」をFalse(既定)からTrueに変更する。機能名が「名前の複数形化」となっていて若干分かりづらいが、これは「複数形対応を有効にするかどうか」という意味である。


[オプション]ダイアログの「名前の複数形化」
「True」に設定すれば、単数形の名前を付ける機能がオンになる。

 この機能は日本語のテーブル名に対しては影響しないはずなので、この項目は常にTrueにしておいても問題にはならないだろう。

 以下の画面は、「名前の複数形化」をTrueに設定した後、いくつかのテーブルをO/Rデザイナに追加したところだ。


単数形の名前で作られたエンティティ・クラス
自動的に「authors」→「author」、「Cities」→「City」、「オーダーs」→「オーダー」となった。

 もちろん、テーブルをドラッグ&ドロップした後に、画面上でクラス名を変更することも可能である。End of Article

カテゴリ:Visual Studio 2008 処理対象:IDE

この記事と関連性の高い別の.NET TIPS
[LINQ to SQL]関連するテーブル内容を先に読み込んでおくには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間