1

私はエンティティフレームワークを使用したコードファーストアプローチについて読んでいます。残念ながら、これに関する EF4 に関連するもの以外の多くのドキュメントを見つけることができません。しかし、私が読んだドキュメント (EF4 に関する scott gu のブログ) は、マッピングが必要ないことを示しています。

そこで、EF6 Power Tools を使用して既存のデータベースからコード ファイルを生成しました。これにより、すべてのモデル クラスとマッピング フォルダーが生成されます。自動的に、Fluent API を使用しているそこにあるマッピング ファイルを調べ (これは正しいと思います)、テーブルの詳細を説明します。

これを読むと、主キー、必要なプロパティ、関係を知らない可能性があることは理にかなっていますが、得られないのは、ブログ投稿のプロパティから列へのマッピングです。これらは必要なかったのに、なぜ必要なのでしょうか?

列名をコードで表すことができない場合、それらが必要であることは理解できますが、私の命名規則ではこれが許可されていません。

私が質問する主な理由は、特定のプロパティのコードを 1 か所だけにしたい保守性の質問であり、これらの行this.Property(t => t.ID).HasColumnName("ID");は冗長に思えます。

Googleが失敗しているように、EF6コードの最初のアプローチに関する役立つリンクがある人は誰でも歓迎します:)

4

2 に答える 2

1

デフォルトの列名などに問題がなければ、プロパティ マッピングは必要ありません。複合主キーで列の順序を設定したり、プロパティにデータベース生成値 (ID/自動インクリメント列など) が含まれるように指定したりするために必要になる場合がありますが、その場合でも列名を省略できます。デフォルトのままにします。

列マッピングにはいくつかの用途がありますが、それらのいずれかがあなたの状況に関連しているかどうかはわかりません:

  • 標準の .NET 命名規則に従わない可能性がある列名を模倣することなく、エンティティを既存のデータベースにマップできます。

  • 同様に、コードとデータベースで異なる命名規則に従うことができます。たとえば、私が働いている場所では、データベースの列は通常、PascalCase ではなくキャメルケースであると想定されています。

  • これらを使用すると、データベースを再作成/移行することなく、後日プロパティの名前を変更できます。

それらのどれにも当てはまらない場合は、ええ、おそらくそれらがなくても大丈夫だと思います.

于 2013-05-21T17:48:22.050 に答える
1

EF は規則を使用して多くのことを行います。慣例を理解して快適に感じたら、クラスを宣言して、物事がうまくいくようにすることができます。

コードファーストの規則

于 2013-05-21T11:52:14.590 に答える