0

現在、Entity Framework 4を使用してASP.NET MVC3アプリケーションをプログラミングしています。コンソールプロジェクトは、MVC3 EF4プロジェクトのコードを同じソリューションで再利用できますか?

バックグラウンドで実行する必要のあるタスク(レコードの10K以上を処理するなど)があります。私は仕事をするコンソールアプリケーションを書いています(そしてスレッドやウィンドウサービスとして実行するかもしれません)。

コンソールアプリとMVC3 EF4プロジェクト

どちらも私はMVC3アプリケーション内のサービスやモデルコードの多くを記載しておりますので、私は私のコンソールプロジェクトでそれを再利用したいと思います。

これは可能ですか?

(により時間の制約のために、私は別のDLL /コードライブラリに当社のサービスをリファクタリングすることはできません)

+0

サービスとモデルコードを両方のプロジェクトで共有されているライブラリプロジェクトに移動しないのはなぜですか。 –

+0

時間の制約。私は開始する前にそれをしていたはずです(クライアントは最後のバッチジョブの要件を追加しました。私は「今すぐ」のようにそれを必要とします)。また、EF4がコードライブラリでEF4を使用することを理解するには新しすぎですすべてのチュートリアルや本が1つのプロジェクトにすべて含まれているからです。 – Extrakun

答えて

2

その場合は、別のDLLにサービスやモデルコードを移動すると、約10分以上かかるべきではありません。新しいプロジェクトを作成し、ファイルを移動し、コンソールプロジェクトとMVCプロジェクトの両方からクラスライブラリへの参照を追加するだけで、名前空間を変更する必要はありません。完了しました。

+0

EF4で生成されたモデルをコードライブラリに入れるべきか、いくつかの簡単な質問があります。 EF4に接続するコードライブラリを設定するにはどうすればよいですか? – Extrakun

+0

@Extrakun:両方のプロジェクトにモデルを見せたいですか?もしそうなら、それをクラスライブラリに入れてください... –

2

MVCシステムの構築方法とコンソールアプリケーションで使用する部分によって異なります。

たとえば、Controllerロジックをコンソールアプリケーションで再利用する場合は、多数のクラスの偽の実装を提供する必要があります。例えばHttpContextBase

SessionCacheHttpContextを使用している場合は、コンソールアプリケーションのコードベースを使用するのに苦労するでしょう。

関連する問題