0

私はこれに対する答えをオンラインで見つけることができませんでした。

  1. 単一のDBコンテキストを使用することに対する複数のDBコンテキストを使用することの長所/短所は何ですか?

  2. 以下の解決策は、関連するオブジェクトを設定するのに問題ありません(DBに保存する場合)(より効率的にするために、私はすでにIDを持っているので、オブジェクトをフェッチする必要はありません)

  3. Using(MyContext c = MyContext) {}コントローラーでコンテキストをインスタンス化するデフォルトのMVCの方法を使用している現在、このようなコンテキストを使用することをお勧めしますが、これで問題ありませんか?

      Person P = new Person(); 
      P.QuickSetCar(CarID); 
      db.People.Add(P); 
      db.saveChanges();
    

    private void QuickSetCar(int CarID)
    {
      if(this.Car == null) {
        Car C = new Car();
        C.ID = ID;
        this.Car = C;
     }
    }
    
4

2 に答える 2

1
  1. 選択の余地がない場合(たとえば、データが複数のデータベースに分散している場合)を除いて、複数のコンテキストを使用することは常に不利です。

  2. ほとんどですが、新しい車の初期化を次のように簡略化できます。

    private void QuickSetCar(int CarID) {
      if(this.Car == null)
        this.Car = new Car(){ ID = CarID };
    }
    
  3. それはいいです。Webトランザクション(要求/応答)の期間中は複数のコンテキストを使用しないでください。また、それより長く保持しないでください。

于 2013-02-15T05:02:16.817 に答える
1
  1. 複数のコンテキストは通常​​、複数のデータベースに分散している非常に大きなモデルにのみ役立ちます。プロジェクトを開始する場合は、通常、単一のコンテキストを使用するのが最適です。

  2. IDを使用する方法は問題ありません。

  3. コントローラ内でコンテキストを作成することは確かに実行可能ですが、私はそれに対して強くお勧めします。このアプローチは、デモや基本的なスキャフォールディングでよく示されますが、実際のアプリケーションでは、それは素晴らしいアイデアではありません。多くの場合、各コントローラーのコンテキストをインスタンス化してクエリすることにより、大量のコードが複製されます。また、中央リポジトリを使用すると、キャッシュをはるかに簡単にしてパフォーマンスを向上させることができます。

于 2013-02-15T07:03:24.320 に答える