c# - tutorial - ¿Cómo excluir ciertas columnas en EF6 usando primero la base de datos?
entity framework ventajas y desventajas (0)
Esta pregunta ya tiene una respuesta aquí:
- Marco de la Entidad: Ignorar Columnas 6 respuestas
- ¿Cómo se actualiza un archivo edmx con cambios en la base de datos? 4 respuestas
Estoy trabajando en un proyecto que tiene una base de datos bastante compleja, y el código es provisional, mientras que otra revisión del sistema está en marcha.
Estoy arreglando algún código heredado, y necesito realizar un trabajo rápido y utilizar soluciones alternativas siempre que sea posible.
Hay una base de datos existente y estoy usando EF6 Datbase First con mucho éxito.
Sin embargo, estoy descubriendo varios casos (hasta mi 4º ahora) donde una columna particular no es necesaria en mi código, y EF se está tropezando con problemas de conversión de tipo.
He encontrado que la solución rápida (y preferida por mi cliente) es simplemente eliminar estas columnas del modelo EF, que he estado haciendo manualmente después de "actualizar desde la base de datos", lo que debo hacer cada vez que arreglo una vista o tabla, etc.
¿Hay alguna manera de que de alguna manera pueda ordenar a EF "Actualizar desde la base de datos" la operación para ignorar ciertas columnas?
Lo he visto en Code First, donde OnModelCreating se puede anular para establecer una propiedad de ignorar, o cuando se agrega un atributo similar a la propiedad existente para informar a EF cuándo ignorar ciertas propiedades.
Pensé en usar una clase parcial, definida en un archivo .cs en una subcarpeta donde podría poner código para que esto ocurra, pero no puedo anotar la propiedad, como se definiría dos veces, una vez en mi parcialidad. y uno en los .cs generados por la plantilla T4.
He estado buscando en línea una técnica para gestionar esto, y no he encontrado nada.
Por ejemplo:
La base de datos tiene Tabla X, Columna1, Columna2, Columna3.
La actualización de la base de datos creará un modelo de entidad para la tabla X, con las 3 columnas.
Después de actualizar desde la base de datos, puedo eliminar la referencia "Columna2" y todo está bien; no hay una propiedad Columna2 en la clase de modelo, y mi código simplemente nunca hace referencia a ningún dato en Columna2.
Lo que estoy buscando es algo que puedo poner en alguna parte: en la base de datos, el modelo EF o la clase parcial que no se sobreescribirá cada vez que realizo una actualización desde la base de datos.
¿Alguna sugerencia?