代码之家  ›  专栏  ›  技术社区  ›  Ed James

使用自动生成的TableAdapter时,建议使用什么方法来处理重复实例化?

  •  0
  • Ed James  · 技术社区  · 16 年前

    我以前没有真正使用过这些方法,倾向于尽可能使用手动命令和存储过程(由于各种速度原因:这些XSD对动态表和大量列非常苛刻),我发现自己在大量方法中实例化了TableAdapter,所以我的问题是:

    自动生成的代码是否会自动简化自身,以便不在Instation上创建完整的适配器类,而是共享一些静态数据(如连接信息),如果不是的话,我最好有某种单例/静态类提供程序,在需要时可以让我访问它们的方法,而无需每次需要获取信息时创建新适配器的开销?

    干杯,艾德

    2 回复  |  直到 16 年前
        1
  •  1
  •   Cory Charlton    16 年前

    如果您关心性能,您可以随时运行基准测试,查看性能的影响(如果有的话)。

    我的观点是,虽然你收到了回复,但它们似乎都是主观的,而不是基于硬数据。因此,如果您有理由担心特定应用程序的性能受到影响,您应该对其进行度量。

    除非存在实际问题,否则没有理由重构某个方面的性能。

        2
  •  1
  •   Remus Rusanu    16 年前

    据我所知,aqdapter本身在实例中可能相当重要,但真正的杀手是连接。我要做的是将适配器的连接修改器标记为 Public

    void Load() {
      using (SqlConnection conn = ...) {
        conn.Open();
        invoicesAdapter.Connection = conn;
        customersAdapter.Connection = conn;
        invoicesAdapter.Fill(dataSet.Invoices);
        customersAdapter.Fill(dataSet.Customers);
      }
    }
    
    void Save() {
      using (SqlConnection conn = ...) {
        conn.Open();
        invoicesAdapter.Connection = conn;
        customersAdapter.Connection = conn;
        invoicesAdapter.Update(dataSet);
        customersAdapater.Update(dataSet);
      }
    }