1

我正在創建一個可以在LINQ to SQL類的部分類中繼承的抽象類。 LINQ to SQL類包含一些內置的部分方法。有沒有一種方法可以在抽象類中實現一個或多個部分方法?我知道部分方法只能包含在部分類或結構中。我確信有另一種方式可以做到這一點。抽象類(C#)中的部分方法

這裏的更多詳細信息:

  • 我可以有一個叫做新聞的數據庫表。如果我創建一個包含此表的LINQ to SQL dbml文件,自動生成的代碼會爲News生成一個部分類。
  • 該部分類包含多個部分方法。
  • 我有一個我正在構建的類,其中包含幾個我希望在所有LINQ to SQL類中使用的方法。
  • 其中一種方法是添加到每個LINQ to SQL類的部分方法。我有一個用於這種方法的公共機構。而不是將此方法添加到每個部分類,我正在尋找一種方法來創建一次,並繼承它與我的基類繼承。

希望能幫助解釋更多。

回答

1

部分方法不適用於繼承。您可以將常規方法添加到抽象基類,但它們不會自動與部分方法聲明「配對」。所以不行。當然,您可以簡單地將部分方法實現調用放入基類中。

還要注意的是,如果通用代碼涉及到像審計的事情(誰/時),也可以通過覆蓋DataContextSubmitChanges方法,並呼籲GetChangeSet做到這一點:

public override void SubmitChanges(ConflictMode failureMode) 
    { 
     ChangeSet delta = GetChangeSet(); 
     //... use delta.Updates, delta.Inserts and delta.Deletes 
     base.SubmitChanges(failureMode); 
    } 

最後,請注意您還可以爲dbml中的所有實體指定一個通用基類(like so);你不必在每個部分課堂上手動完成。

0

我想我明白你想要做什麼,但如果沒有,請告訴我。你可以使你的抽象基類部分化,並將你想要的實現拉入該類。或者,你可以把你的抽象類和封裝你希望你的子類訪問的功能。