抽象类中的部分方法(C#)

时间:2009-04-16 03:25:17

标签: linq-to-sql inheritance abstract-class implementation partial-classes

我正在创建一个可以在LINQ to SQL类的部分类中继承的抽象类。 LINQ to SQL类包含一堆内置的部分方法。有没有办法可以在抽象类中实现一个或多个部分方法?我知道部分方法只能包含在部分类或结构中。我相信还有另一种方法可以做到。

以下是更多细节:

  • 我可能有一个名为News的数据库表。如果我创建一个包含该表的LINQ to SQL dbml文件,则自动生成的代码会为News生成一个分部类。
  • 此分部类包含多个部分方法。
  • 我正在构建一个包含多个方法的类,我希望在所有LINQ to SQL类中使用这些方法。
  • 这些方法之一是添加到每个LINQ to SQL类的部分方法。我有一个共同的身体用于这种方法。我没有将这个方法添加到每个分部类中,而是在寻找一种创建它的方法,并使用我的基类继承继承它。

希望有助于解释更多。

2 个答案:

答案 0 :(得分:1)

部分方法不能用于继承。您可以向抽象基类添加常规方法,但它们不会自动与部分方法声明“配对”。所以不行。当然,您可以将部分方法实现调用到基类中。

另请注意,如果公共代码与审计(who / when)之类的内容相关,您还可以通过覆盖DataContext的{​​{1}}方法并调用SubmitChanges来执行此操作。 :

GetChangeSet

最后,请注意,您还可以为dbml(like so)中的所有实体指定公共基类;你不必在每个部分课程中手工完成。

答案 1 :(得分:0)

我想我明白你想做什么,但如果没有,请告诉我。您可以使您的抽象基类部分化,并将您想要的实现拉入该类。或者,您可以使用抽象类并封装您希望子类可以访问的功能。