2011-02-17 14 views
5

Estamos trabajando con una base de datos que contiene metadatos en todas las tablas de bases de datos y campos utilizados en nuestras aplicaciones. A partir de estos metadatos, generamos código que contiene clases parciales, extendiendo nuestras entidades Linq2Sql.Agregar atributos a las propiedades en el DBML de Linq2Sql

Tuvimos la idea de agregar una bandera "obsoleta" en nuestros metadatos, que a su vez debería agregar el atributo Obsoleto a las propiedades marcadas en el objeto Linq. (generando advertencias en nuestro código usando campos antiguos)

¿Este tipo de extensión es posible en una clase parcial? ¿Simplemente agregar un atributo a una propiedad en un archivo de clase parcial? Esto se parece mucho a una "propiedad parcial", algo que creía que no existía en .NET.

+1

¿Has encontrado una solución para esto todavía? Estoy tratando de hacer exactamente lo mismo. http://stackoverflow.com/questions/4651843/where-to-put-data-annotations-tags Esta publicación se ve a lo largo de las líneas correctas, pero no puedo hacer que funcione. – Banford

+0

Lo sentimos, perdimos el hilo de esta pregunta. Hice algunas investigaciones, y esto parece ser una falla desafortunada del sistema de clase parcial en .NET. Esperemos que algún día agreguen esto a una característica de lenguaje por lo demás increíble. –

+0

mira esto, ya respondí esta pregunta aquí http://stackoverflow.com/a/24757520/3050647 – elia07

Respuesta

0

Sí, es posible utilizar clases parciales para agregar atributos a las clases autogeneradas a través del DBML.

Utilizo esto para agregar el atributo CompilerGenerated a las clases que genera Linq2SQL. Por ejemplo:

[System.Runtime.CompilerServices.CompilerGenerated()] 
public partial class MyDataContext : System.Data.Linq.DataContext {} 

[System.Runtime.CompilerServices.CompilerGenerated()] 
public partial class tblInsurance { } 
+0

Gracias, pero lo que necesito es agregar atributos a las propiedades de la clase parcial, no a la clase misma . –

1

Sí, disfrutar de los atributos MetadataType.

Buen ejemplo here. En este contexto, quieren agregar atributos a los fines de la validación, pero no hay razón por la que no puedas hacer lo mismo para indicar la obsolescencia.

Cuestiones relacionadas