これは、POCOクラスをEFから完全に分離したいためです(私のリポジトリとUoWパターンにより、ktをNHibernateに移動できるようになります)。
Fluent API>データアノテーション、つまりFluent APIは、データアノテーションよりも多くの機能を備えており、テーブルのマッピングと関係の作成に役立ちます。ただし、Fluent APIには、、、およびを使用したラベルと検証が@Html.LabelFor
あり@Html.EditorFor
ません。これが私を頭痛の種にしているものです。[Display(Name:=...)]
[DisplayFormat(DataFormatString=...)]
[Required(ErrorMessage=...)]
今、そのアイデアを見つけました:
データレイヤーでFluentAPIを使用しているため、私のモデルは実際にはPOCOクラス(POCOプロジェクト)であり、dllはこのサービスにサブスクライブするWCFやその他のプロジェクトで使用できます。
ViewModelにデータ注釈を使用します。これはUIレイヤー内にのみ存在し、ViewModelはMVCビューを除いて他のプロジェクトと共有されることはないため、データ注釈属性を使用してもかまいません。
(1)で作成した制約を(2)likeandにやり直し[Required]
ます[MaxLength]
。ViewModelとドメインモデルは分離する必要があり、ある程度関連しているとは思いますが、相互に関連していないため、DRYの原則を繰り返して揮発させる価値があると言う人もいますMaxLength
(ほんの少し繰り返して、nに対しては問題ないはずです)。 -層アーキテクチャ+静的クラスとconstを使用して、両側の長さを同じにすることができます)。