エンティティ フレームワークがすべてのクラス名を複数形にし、デフォルトで最初の文字を大文字にするのはなぜですか? これを行う利点は何ですか?ばかげた質問かもしれませんが、ただの好奇心からですか?
3 に答える
.NET スタイルのガイドラインでは、すべてのクラス名は CamelCase にする必要があると規定されています。
複数形についてはわかりませんが、個々のエンティティ オブジェクトの複数形ではありませんね。ただし、コレクションには意味があります。
クラス ライブラリを開発するための .NET デザイン ガイドライン の大文字と小文字の規則のセクションでは、すべてのクラス名をパスカル ケースにする必要があると述べています。これは次のように定義されています。
「識別子の最初の文字と、後続の連結された各単語の最初の文字は大文字になります。3 文字以上の識別子にはパスカル ケースを使用できます。例:
バックカラー」
複数形については、Entity Framework モデル デザイナーの既定の設定を使用すると逆になることがわかりました。複数のテーブル名を単数形に変換します。たとえば、Northwind データベースを使用し、既定の設定を使用すると、デザイナーが Products テーブルを というクラスに変更し、Product
Categories テーブルを というクラスに変更することがわかりましたCategory
。Product
オブジェクトの単一のインスタンスは ではなくであるため、これは理にかなっていますProducts
。
反対の効果が得られている場合、私は戸惑います。ただし、何が起こっているのかを説明しているこの記事 - Entity Framework 4.0: Pluralization by Dan Rigsby を確認してください。
クラスを単数形にし、コレクションを複数形にする必要があります。たとえば、これはefによって単数形化と複数形化が行われる場所です
var 顧客 = 新しい顧客{}; //単数クラス db.Customers.AddObject(customer); ObjectSEt は複数形です
customer.Orders.Add(新しい注文{}); 注文ナビゲーション プロパティは複数形です。
詳細については、私の本で 7-6 のレシピを読むこともできます。