1

MVC3環境でのEF4.1の使用。NUGETを使用してダウンロードしたPOCO生成ツールも使用しています。

データベースが変更されるたびに(そして結果として再同期が実行されるたびに)これらの変更を失うことなく、検証用の属性を使用してPOCOクラスを「カスタマイズ」する方法を探しています。

抽象クラスを作成して継承クラスをインスタンス化しようとしましたが、EFはEDMXファイルを介して具象クラスを作成するように強制し、この子孫クラスも生成されたPOCOになり、データベースの同期ごとに「更新」されます。

POCOが部分的なクラスであることに気づきました。つまり、別のファイルのクラスにメンバーを追加できましたが、このアプローチでは既存のメンバーに追加できませんでした。

私が直面しているのはデータベースファーストアプローチの制限であることを理解していますが、更新のたびに失われない方法でPOCOを変更/カスタマイズする方法があるのではないかと思います。

4

1 に答える 1

1

少なくとも2つのオプションがあります。

  1. 部分クラスにIValidatableObjectインターフェイスを実装し、Validateメソッドを提供します。
  2. Erangaが言及しているように、この属性を使用してMetadataType、検証属性を同じプロパティを持つ別のクラスに移動します。

オーバーライドOnModelCreatingは最初にコードに対してのみ機能し、最初にモデル/データベースのオプションではありません。

于 2012-09-04T04:46:08.493 に答える