0

nHibernateを使用するMVC3プロジェクトがあります。リポジトリ層とサービス層で使用されるすべてのモデルクラスを含む別のモデルプロジェクトがあります。モデルは、System.ComponentModel.DataAnnotationsのDisplayAttributeやRequiredAttributeなどのデータ注釈を利用します。

System.Web.Mvcに含まれているRemoteAttributeなどの属性もあります。

もちろん、これは、モデルプロジェクトが特定のフロントエンドテクノロジに依存していることを意味します。

ソリューションに他のフロントエンドがあると仮定すると、この依存関係リンクを処理するための最良の方法は何でしょうか?

4

2 に答える 2

1

データベースモデルとフロントエンドテクノロジー間の依存関係を減らすために、コントローラー内の他のフロントエンドアクションの検証に特別なビューモデルを使用し、その後にビューモデルからデータベースエンティティにデータを配置できます。

于 2012-11-04T04:47:53.300 に答える
1

RemoteAttributeサーバー上のプロパティを検証するためのコントローラー/アクションを指定し、モデルにコントローラー、アクション、ルートなどの概念に関する知識がないため、モデルに属していません。プレゼンテーション層はモデルに依存しますが、その逆ではありません。

モデルを継承し、プロパティをオーバーライドし(仮想である必要があります)、を追加するビューモデルを作成しますRemoteAttribute。このようにして、重複やマッピングを回避できますが、これも代替手段です。

于 2012-11-04T04:15:27.300 に答える