0

TableAdapter 是 DataAdapter 的包装器。以通用方式使用 TableAdapters 是不可能的(因为它们继承了 Component 类)。是否可以从 TableAdapter 中取出包装好的 DataAdapter?

4

2 回答 2

1

正如布赖恩所指出的,表适配器是一个部分类。如果要公开 DataAdapter,可以通过以下代码实现。(假设您有一个 TableAdapter 类 MyTableAdapter。

public partial class MyTableAdapter
{
    public DbDataAdapter Adapter
    {
        get { return this._adapter; }
    }
}

或者,您可以编写一些通用方法(或扩展方法),使用反射返回私有适配器。这样您就不必“触摸”您创建的每个表适配器。

于 2010-02-26T14:54:47.280 回答
0

每个表适配器都包含设计器生成的方法,这些方法不是标准的......而不是使用通用基类,我会调查您是否可以让表适配器实现一个接口,因为这样更容易实现并且仍然不会丢失强类型。我相信表适配器是一个部分类,您可以创建一个类:

public partial class MyTableAdapter : ISomeInterface

该接口可以定义您的自定义方法。我不确定部分的东西,但我很确定它们是部分类。

于 2010-02-26T14:38:15.257 回答