2009-09-16 42 views
2

我目前有一个DataSet声明,其中包含3个表。为了这个例子,我们将他们称为用户,问题和答案。如何覆盖DataSet中的Table上的TableAdapter方法?

在每个这些我有一个TableAdapter所需的各种方法,即。 GetData(),Update(),Delete()等

在答案表我想从TableAdapter重写更新方法添加一些参数不是表的一部分,但我需要通过到期到ObjectDataSource要求。

如何重写Answer TableAdapter上的Update()方法?

在试图保持项目简单,我不想创建一个单独的DAL层。

回答

3

任何设计师生成的TableAdapter类其合适的成员标记为虚拟 - 这包括UpdateFill方法等。 Hemce,解决方案只是继承设计师生成的TableAdapter类并覆盖Update方法,并在其中添加自定义代码。

如果您想更改方法签名(参数计数/类型),您也可以选择重载Update方法。您可以使用扩展方法在派生类或更方便地在我的视图中执行此操作:

public static void Update(this MyTableAdapter tableAdapter, ... other params ...) 
{ 
    // do stuff here 
    tableAdapter.Update(...); 
} 
+0

谢谢。可悲的是我仍然没有去延伸方法。 – BinaryMisfit 2009-09-16 19:38:43

+0

没问题。是的,扩展方法确实需要略微改变心态,尽管一旦你习惯了它们,你就会爱上它们。 :) – Noldorin 2009-09-16 20:35:40