0

我一直无法在网上找到任何答案。

  1. 与使用单个数据库上下文相比,使用多个数据库上下文的优点/缺点是什么?

  2. 下面的解决方案是否可以设置相关对象,(保存到数据库时)(为了提高效率,因为我已经有了 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. Using multiple contexts is always a disadvantage unless you have no choice (e.g. your data is dispersed across multiple databases).

  2. Almost, but you can simplify your new car initialization to:

    private void QuickSetCar(int CarID) {
      if(this.Car == null)
        this.Car = new Car(){ ID = CarID };
    }
    
  3. That's fine. Just don't use more than one context for the duration of the web transaction (request/response) and don't keep it around for longer than that either.

于 2013-02-15T05:02:16.817 回答
1
  1. 多个上下文通常只对分布在多个数据库中的非常大的模型有用。如果您正在启动一个项目,通常最好使用单个上下文。

  2. 您使用 ID 的方法很好。

  3. 在控制器中创建上下文当然是可行的,但我强烈建议不要这样做。这种方法经常在演示和基本脚手架中展示,但在现实世界的应用程序中这不是一个好主意。通过在每个控制器中实例化和查询上下文,通常会复制大量代码。还有一个中央存储库将允许更容易缓存以提高性能。

于 2013-02-15T07:03:24.320 回答