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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top