EF Power Toolsを使用して、既存のデータベースからPOCOクラスを生成しています。たとえば、クラスとマッパークラスが生成されます。クラスPersonクラスPersonMapper最初にリバースコードを使用しているので、マッパークラスは本当に必要ですか?DBテーブル名と列名が必要です。これらはMapperクラスで生成されます。それらを属性としてPOCOクラスに移動する必要がありますか?
2 に答える
EF Power Toolsは、流暢なAPIを使用して、クラス/プロパティをテーブル/列にマップします。すべてのクラス/プロパティがEF規則に従っている場合(ここでLadislavの回答に従うことで規則について詳しく知ることができます。属性もマッパークラスも必要ありません。ただし、通常、規則に従わないマッピングがいくつかあります。
個人的には、流暢なapiを使用すると、pocoクラスが変更されない(属性は不要)ため、よりクリーンな方法だと思います。一度コツをつかめば、流暢なapiでの記述は属性よりもさらに簡単になります(少なくとも私にとっては、特に多くの場合) -多対多または1対多の関係)。
そして何よりも、EFPowerToolsがすべてを代行してくれます。では、なぜわざわざ属性に変更したり、属性を削除したりするのでしょうか。
流暢なAPIの代わりに属性を探している理由は、オブジェクトをマップして検証を行うためのモデルとして1つのクラスを使用するコードやプロジェクトがすでにたくさんあるからです。
流暢なAPIを使用したい場合は、あるクラスで動作し、別のクラスで検証するように多くのコードを変更する必要があります。
うまくいけば、私はRowanMillerによる解決策を見つけました。
ガイドの最初を使用して[Table]タグと[Column]タグをモデルに移動し、さらに[Required]、[RowVersion]、[MinLength]、[MaxLength]属性を移動して、Mapクラスを削除することができます。
流暢なAPIの代わりに属性のみを使用したい場合に私が行った変更は次のとおりです。 ダウンロード
一部の属性とマッピングは必要ないため、省略しました。そして多分いくつかのフォーマットが必要です。完全にはテストされていません!さらに作業を進め、後でファイルを置き換えます。