Wie verwenden Sie die LINQ to SQL Designer Zugriffsmethoden für Unterklassen zu generieren?
-
23-09-2019 - |
Frage
alt text http://img16.imageshack.us/img16/8085/datacontext .jpg
Oben ist die LINQ to SQL-Designer Ansicht für meinen Datenkontext.
Im Folgenden ist der entsprechende Code, dass der Designer generiert:
Accessor für die abstrakte Klasse Activitybase:
public System.Data.Linq.Table<ActivityBase> ActivityBases
{
get
{
return this.GetTable<ActivityBase>();
}
}
Die Klasse Activitybase und die Liste der Unterklassen:
[Table(Name="dbo.Activities")]
[InheritanceMapping(Code="1", Type=typeof(ActivityBase), IsDefault=true)]
[InheritanceMapping(Code="2", Type=typeof(Project))]
[InheritanceMapping(Code="3", Type=typeof(ProjectActivity))]
[InheritanceMapping(Code="5", Type=typeof(Task))]
[InheritanceMapping(Code="4", Type=typeof(Activity))]
public abstract partial class ActivityBase : INotifyPropertyChanging, INotifyPropertyChanged
{
Gibt es eine Möglichkeit Accessormethoden für die Unterklassen zu erzeugen, wie in der Vererbungs Mapping oben (Projekt, Aufgabe, etc ...) gezeigt, ohne es manuell zu tun? Ich habe sie von Hand, aber dann eine Änderung der Designer überschreibt alle manuellen Änderungen.
mache ich das falsch? sollte ich für die Unterklassen werden nicht machen Accessoren? Filterung von Activitybase scheint schlimmer zu mir.
Danke für jede Hilfe zu diesem Thema.
Lösung
Beachten Sie, dass LINQ to SQL erstellt Teilklassen. Wenn Sie die automatisch generierten Klassen ändern Sie so durch eine partielle Klasse mit dem gleichen Namen zu erklären und das Hinzufügen der Methoden dort tun können. Auf diese Weise werden sie nicht bekommen überschrieben, wenn Sie eine Änderung in dem Designer zu machen.
Andere Tipps
Ich fand diese Frage Antworten, was ich wissen wollte:
Was ist die CS-Datei unter MyDataContext.dbml für ?
, da die Daten Kontext auch eine partielle Klasse ist, kann ich diese Datei verwenden.