0

ビジネスロジックレイヤーには、8つのステップがあるプロセスがあります。そして、DALではEntiyFrameWorkコードの最初のアプローチを使用しています。DBoperaionsを実行する必要があるすべてのメソッドで、DBContext like(using(var context = new MyContainer))を継承するContainerのオブジェクトを作成しました。パフォーマンスの部分では、オブジェクトを作成するのに時間がかかることがわかりました。そのコンテナのオブジェクトをBllで1回(プロセスの開始時に)作成し、それをパラメータとしてすべてのメソッドに渡し、8つのステップすべてを完了した後、プロセスの終了時にそのオブジェクトを破棄できますか?どんな助けも非常に高く評価されます。

4

1 に答える 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 に答える