0

Webアプリケーションに3つのcsprojsがあります。

  • UI.Web
  • Bll.Web
  • DAL.Web

UI.WebはBll.Webを参照し、Bll.WebはDAL.Webを参照します。

DAL.Webは非常にシンプルで、次のようなメソッドのみが含まれています。

GetDataTableFromSP
GetScalarFromSP
ExecuteScalarFromSP

EF4を使用してDBをリバースエンジニアリングし、Self-TrackingEntitiesテンプレートも使用しました。今私は3つのファイルが残っています:

  1. Model.Context.tt
  2. Model.tt
  3. Model.edmx

私の質問は、プロジェクト構造内で、n層アプローチを維持するためにこれらをどこに配置するかです。

ありがとう!

4

2 に答える 2

1

T4テンプレート(したがって生成されたエンティティ)を、すべてのレイヤーで参照される独自のモデルアセンブリに配置します。Model.ttを新しいアセンブリに移動し、エディターの1つを使用してVSで開くだけで、T4コードを確認できます。Model.edmxを検索し、パスを更新して、Model.edmxを含むDAL.Webプロジェクトのディスク上の物理的な場所に正しく解決されるようにします。

これにより、スキーマ/モデルが変更された場合にT4テンプレートを再実行できますが、UIがDALに依存する必要がないため、関心の分離が維持されます。

ここでこれを説明するのに役立つ次のものを見つけました

于 2011-04-09T18:24:06.093 に答える
1

それはすべて個人的な好みの問題です。

たとえば、私は常にこれらのファイルとモデルをアプリケーションの DAL アスペクトに配置します。ただし、Student、Grade、StaffType など、生成されたエンティティへのアクセスも必要です。したがって、BRL から DAL を参照します。

また、UI では、生成されたエンティティに注意する必要があります。これは、通常、フォームにエンティティを指定し、そのオブジェクトからフォーム フィールドに入力するためです。そのため、UI から BRL も参照します。

于 2011-04-09T17:46:01.463 に答える