.net - orientada - Agregar atributos a las propiedades en el DBML Linq2Sql
programacion avanzada c# (2)
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 un código que contiene clases parciales, extendiendo nuestras entidades 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 viejos)
¿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.
Sí, es posible usar clases parciales para agregar atributos a clases autogeneradas a través del DBML.
Yo uso 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 { }
Sí, mira el atributo MetadataType .
Buen ejemplo aquí . 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.