2009-01-24 19 views
7

Quiero usar el marco de entidad. Sin embargo, también tengo el requisito de permitir a mis usuarios definir campos personalizados en nuestro sistema. Me gustaría seguir utilizando el marco de entidad y no usar una clase parcial con una propiedad de tabla hash.Marco de entidad: Agregar propiedades/entidades durante el tiempo de ejecución

A continuación se muestra la solución que estaba pensando, sin embargo, no es simple, así que me gustaría ver si hay una mejor manera.

Mi idea actual es tener un objeto ModelManager que cree una columna en la tabla adecuada, modifique los archivos EDM y compile los archivos usando edmgen.exe. Todo esto tendría que suceder en un proceso diferente y/o dominio de aplicación que la aplicación, ya que la aplicación haría referencia al ensamblaje resultante. Cuando se reinicie la aplicación, tendrá acceso al campo recién agregado.

¿Es esta la única manera de hacer esto con Entity Framework? Gracias por tu tiempo.

Respuesta

1

Después de leer algunas entradas de blog realizadas por el equipo de Entity Framework y Julie Lerman, parece que lo están haciendo más fácil para la próxima versión. Lo que significa que, por lo que puedo decir, la forma en que planteé en la pregunta es la mejor forma de agregar dinámicamente campos al marco de la entidad.

+0

¿Podría agregar enlaces a estas entradas? – Guillaume

0

Va a terminar gastando más tiempo tratando de hacer que esta solución funcione luego para hacer todo su proyecto usando HashTables. Realmente no creo que el marco de la entidad es apropiado para esta situación porque,

  1. su código no sería programado para utilizar los nuevos campos que se generaron
  2. que va a tener que lidiar con la descarga de la actual asamblea del dominio de aplicación, y volver a cargar el nuevo
  3. que realmente está configurando su auto para el fracaso

lo sentimos, pero sólo hay algunos problemas que no son fácilmente aplicables a ciertos marcos.

+0

Agradezco su respuesta. Sé que esto es difícil, pero quiero seguir usando el Entity Framework. La solución que he indicado funciona como lo he probado. He editado la pregunta para reflejar esto. Quiero averiguar si hay otra forma de tener esta funcionalidad en Entity Framework – CoderGuy

0

sólo estoy lanzando esta ahí fuera ...

Usted podría utilizar los métodos de extensión y/o una clase parcial para dejar objetos aceptan un diccionario de pares clave/valor de los datos del campo personalizado. Luego, después del evento de guardar, puede insertar/actualizar esa información usando SQL directo.

Cuestiones relacionadas