2010-11-09 6 views
6

Hace más de una semana que me estoy rascando la cabeza y no he llegado a ninguna parte :(Tenemos una base de datos heredada que intento modelar contra entidades Las tablas están extremadamente hinchadas y no tenemos suficiente ancho de banda para crear nuevas tablas optimizadas. Por lo tanto, tengo que trabajar con lo que ya tenemos. Sin embargo, no quiero usar todas las columnas redundantes expuestas por el DB. Mi plan inicial era usar Views en mi modelo, pero eso parece ser igual de peludo con muy poca documentación.Entity Framework: Modelado contra un esquema de base de datos existente

Ahora, ¿cuál sería la mejor manera de crear un modelo con solo unas pocas columnas? ? Todo lo que necesito es un grupo de entidades de solo lectura, por lo que si hay una manera de ignorar las columnas que no admiten nulos del esquema, Estaría todo listo. Estaba planeando usar POCO, de lo contrario tendría que crear mis propias asignaciones, supongo.

ACTUALIZACIÓN: Por POCOs, quiero decir que me gustaría utilizar ADO.NET POCO Entity Generator.

+2

Sugiero usar NHibernate, crear tus propios POCO y mapeos con Fluent-NHibernate y luego solo mapear las columnas que deseas. OMI: solo está pidiendo problemas para generar/generar su modelo a partir de su esquema DB (heredado). – mxmissile

Respuesta

2

¿Qué tal crear vistas en la base de datos y solo importar las vistas en el modelo?

+0

Intenté que. Sucks balls – Praveen

+0

¿Alguien más intentó usar Views en lugar de Tables? Estoy ansioso por conocer tus experiencias. – Praveen

+0

Podrías ¿Has elaborado bastantes puntos de vista en EF y ha funcionado bien? – SteveCav

1

Bueno, si solo necesita un grupo de entidades y si no van a cambiar mucho con el tiempo, entonces solo elegiría las tablas que necesita, generar las entidades con el asistente normal y todas las columnas, y luego eliminar todas las collumnas no necesarias de forma manual en el diseñador de modelos.

+0

El problema al hacer eso es que tenemos muchas columnas que no admiten nulos que realmente no quiero consultar y recuperar datos. Aunque quiero un modelo de solo lectura, EF me obliga a usar esas columnas sin saber qué hacer en caso de inserciones/actualizaciones. – Praveen

+0

Además, ¿cómo definirías las relaciones? – Praveen

+0

OK, ahora entiendo el problema real. Esto que nunca tuve. Puede ser que pueda echarle un vistazo a http://blogs.msdn.com/b/dsimmons/archive/2007/11/08/mapping-read-only-entities.aspx, pero esto parece mucho trabajo manual. – Markus

0

agregue la tabla a su EF, y simplemente elimine las propiedades que no desea. simplemente no mapea esos campos DB.

Cuestiones relacionadas