programacion orientada objetos metodos lenguaje comandos codigos clases avanzada atributos .net linq-to-sql attributes partial-classes

.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.