2012-02-13 10 views
0

私は現在、Windows AzureにデプロイするVisual Studioのソリューションを開発中です。このソリューションは、SQL Serverのデータが表示されるMVC3 Webロールで構成されています。 私はすでにデータベースと具体的な実装からビューを切り離すために、NinjectとFluent NHibernateをセットアップしました。MVC3とSOAプロジェクトの共通nhibernateデータアクセスプロジェクト

今私がしたいのは、データアクセスロジック(つまり、データアクセス用のリポジトリと一緒にすべてのデータアクセスロジック)を別のC#プロジェクトに入れて、このプロジェクトをMVC3プロジェクト用に再利用できるようにすることです。将来のSOAプロジェクト

私はこれをどのように達成することができるでしょうか?私は "コード専用"のクラスでそれを行う方法を考え出しましたが、休止状態を使うときには一握りの問題が出てきます。私は、各Webリクエストに対して作成されたglobal.asxのISessionオブジェクトに関連していると思います。

簡単な実装、シナリオ、ハウツーへのヒントは非常に役に立ちます。必要であれば私も、コードを投稿することができます - ちょうど私が私が正しく理解していれば、私はそのServiceクラスライブラリの実装に問題が表示されていない詳細のどの部分;-)

よろしく、 マーティン

+1

私は他の多くの時代と同じように、DALだけが基礎となるORMとデータベース技術について知っている階層化アプローチを提案しています。私の答えをここで確認してください:http://stackoverflow.com/a/7474357/559144 NHibernateを使いたいのであれば、EFをNHで置き換える以外は基本的に同じです。Sessionを処理する必要がある場合は、ロジックとサーバーをMVCおよびSOAプロジェクトのビジネスロジックへのエントリポイントに割り当てます。 –

答えて

0

知らせUIまたはSOA層のいずれかから要求を取得して実行します。

public class UsersService 
     { 
      private ISession _Session; 

      // Session is injected 
      public UsersService(ISession session) 
      { 
       _Session = session; 
      } 

      public IEnumerable<User> GetAllUsers() 
      { 
       return _Session.QueryOver<User>().List(); 
      } 
     } 
関連する問題