¿Cómo se utiliza el diseñador de LINQ to SQL para generar métodos de acceso para las subclases?

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

Pregunta

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

Arriba está el LINQ a SQL vista del diseñador para mi contexto de datos.

A continuación se muestra el código relevante que el diseñador genera:

De acceso para la clase abstracta ActivityBase:

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

La clase ActivityBase y la lista de subclases:

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

¿Hay una manera de generar métodos de acceso para las subclases como se muestra en la asignación de la herencia anterior (proyectos, tareas, etc ...) sin hacerlo manualmente? Yo les añadió manualmente, pero entonces un cambio en el diseñador sobreescribe cualquier cambio manual.

¿Lo estoy haciendo mal? No debería estar haciendo descriptores de acceso para las clases sub? el filtrado de ActivityBase parece peor para mí.

Gracias por cualquier ayuda en este sentido.

¿Fue útil?

Solución

Tenga en cuenta que LINQ a SQL crea clases parciales. Si desea modificar las clases generadas automáticamente, puede hacerlo declarando una clase parcial con el mismo nombre y la adición de los métodos allí. De esta manera no van a obtener sobrescribe cuando se hace un cambio en el diseñador.

Otros consejos

He encontrado esta pregunta respuestas lo que quería saber:

¿Cuál es el archivo .cs bajo para MyDataContext.dbml ?

ya que el contexto de datos es también una clase parcial puedo usar ese archivo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top