2012-03-22 8 views
4

私はPOCOクラス用のDomainプロジェクトを持つntierソリューションを持っています。私は特定の長さにconstrianedいくつかのテーブルフィールドを持つデータベースを生成したい。今私はこれを行う2つの方法、POCOクラス自体のデータ注釈、またはDbContextでOnModelCreatingメソッドを使用するが、どちらが最善の方法ですか?OnModelCreatingとデータベース構成のDataAnnotationsとの比較

私はOnModelCreatingアプローチについて懸念していますが、これはEntity Frameworkに固有のものです。別のORMに切り替えると、データベースの構成が再実装されない限り失われます。

アノテーションのアプローチでは、私は自分のモデルを混乱させ、 "ポコ"タグを失う心配があります。他のORMが注釈を尊重するかどうかもわかりません。一方、データベースがどのように見えるかについてのすべての情報は、モデルに結び付けられているので、維持管理が簡単です。

正しい方向で私を指摘すると思いますか?

答えて

3

OnModelCreatingです。一部のマッピング機能は、データ注釈では使用できません。さらに、すでに言及したように、データアノテーションはPOCOの原則に反します。クラスには永続性に関する情報が含まれている可能性があります。また、一部のデータアノテーションでも現在ドメインプロジェクトで参照されているEntityFramework.dllが必要です。

また、データアノテーションは主にMSツールで使用されるMS固有の機能であることに注意してください。それらを他のORMとともに使用する場合は、データアノテーションからORMのマッピング記述への変換を実装する必要があります(存在しない場合)。

関連する問題