Comment utilisez-vous le concepteur LINQ to SQL pour générer des méthodes d'accès pour les sous-classes?

StackOverflow https://stackoverflow.com/questions/2541964

Question

texte alt http://img16.imageshack.us/img16/8085/datacontext .jpg

Au-dessus est le LINQ à la vue de SQL Designer pour mon contexte de données.

Voici le code correspondant que le concepteur génère:

accesseur pour la classe abstraite ActivityBase:

        public System.Data.Linq.Table<ActivityBase> ActivityBases
        {
            get
            {
                return this.GetTable<ActivityBase>();
            }
        }

La classe ActivityBase et la liste des sous-classes:

[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
{

Y at-il un moyen de générer des méthodes d'accès pour les sous-classes comme indiqué dans la cartographie de l'héritage ci-dessus (projet, tâche, etc ...) sans le faire manuellement? Je les ai ajoutés manuellement mais un changement dans le concepteur Écrase les modifications manuelles.

Est-ce que je fais ce mal? devrais-je pas fais accesseurs pour les sous-classes? filtrage de ActivityBase me semble pire.

Merci pour toute aide à ce sujet.

Était-ce utile?

La solution

Notez que LINQ to SQL crée des classes partielles. Si vous souhaitez modifier les classes générées automatiquement, vous pouvez le faire en déclarant une classe partielle avec le même nom et en ajoutant les méthodes là. De cette façon, ils ne seront pas écrasées lorsque vous faites un changement dans le concepteur.

Autres conseils

Je trouve cette question répond ce que je voulais savoir:

Quel est le fichier .cs sous MyDataContext.dbml pour

puisque le contexte de données est également une classe partielle je peux utiliser ce fichier.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top