ビジネスロジックレイヤーには、8つのステップがあるプロセスがあります。そして、DALではEntiyFrameWorkコードの最初のアプローチを使用しています。DBoperaionsを実行する必要があるすべてのメソッドで、DBContext like(using(var context = new MyContainer))を継承するContainerのオブジェクトを作成しました。パフォーマンスの部分では、オブジェクトを作成するのに時間がかかることがわかりました。そのコンテナのオブジェクトをBllで1回(プロセスの開始時に)作成し、それをパラメータとしてすべてのメソッドに渡し、8つのステップすべてを完了した後、プロセスの終了時にそのオブジェクトを破棄できますか?どんな助けも非常に高く評価されます。
1 に答える
2
はい、作業単位ごとに1つだけ作成する必要があります。ObjectContext
OCをステップに渡すか、必要なパーツだけを渡すことができます。たとえば、いくつかのステップについてクエリを実行するだけでよい場合は、MyEntities.Foos
次のように実行できます。
public class Step4
{
public Step4(IQueryable<Foo> foos)
{
// ...
...そして実行します:
var step4Result = new Step4(context.Foos).Execute();
これは、コンテキスト全体を渡すよりもテストが簡単です。
于 2012-05-01T13:31:03.400 に答える