Pregunta

He instalado VS SP1 y jugó con Entity Framework.

He creado un esquema de una base de datos existente y probado algunas operaciones básicas.

La mayoría de los que le fue bien, excepto el esquema de base de datos de actualización.

He cambiado la base de datos en cada forma básica:

  • agrega una nueva tabla
  • elimina una tabla
  • agrega una nueva columna a una tabla existente
  • elimina una columna de una tabla existente
  • cambiar el tipo de una columna existente

Los tres primeros salió bien, pero el tipo de cambio y la columna de supresión no siguió los cambios de base de datos.

Hay alguna manera de hacer que es el trabajo del diseñador?O es que no se admite en el momento?No encontré ningún material relacionado, pero sigue buscando.

¿Fue útil?

Solución

Me imagino que, posiblemente, los que no suceden porque se rompería la generación de código existente, pero eso es sólo una conjetura de mi parte.

Aquí está mi lógica:

En primer lugar, EF se supone debe ser mayor de 1:1 de la tabla de asignación, así que es muy posible que sólo porque se va a eliminar una columna de la tabla no quiere decir que para esa entidad, no debería ser una Descripción de la propiedad.Usted podría mapa de la propiedad a otra tabla.

Segundo, el cambio de un tipo sólo podría romper construye.esa es la única justificación de allí.

Otros consejos

He encontrado que, en general, todavía hay un buen número de errores con la " Actualización del Modelo de Base de datos, la funcionalidad.

Las claves son el asesino para mí - aún tengo que tener cualquier modificación que he realizado en una relación de clave externa o para agregar una Clave Principal de una tabla y el actualizador funciona correctamente (en la que dará un error de compilación en el código generado) - pero para resolver el problema es una simple cuestión de eliminar el modelo y volver a importar (sólo se tarda un minuto) - esto es menos que ideal, obviamente, pero nunca he tenido un fallo de un 'dulce' de importación.

De las demos de la diseñadora que he visto, no es una perfecta herramienta.Se trata de una versión 1.0 del producto, por lo que es obligado a tener algunos puntos de dolor.El tipo de cambio es uno de ellos que parece.Viendo el diseñador y la generación de código, me imaginé que sería de descanso, ya sea en tiempo de compilación (no probable) o en tiempo de ejecución (cuando el modelo es realmente ejecutado).

Usted necesita para eliminar la columna por ti mismo, desde el diseñador o el archivo XML.

Como se mencionó antes, sólo se puede eliminar la columna de la diseñadora.Tan lejos como cambiar el tipo de datos de la columna:acaba de actualizar el modelo de la base de datos, a continuación, vaya a la tabla de asignaciones y seleccione la columna que desee cambiar en la DB.los valores en el derecho de representar a su modelo, curiosamente este no se actualiza automáticamente, pero sólo seleccione la columna a la derecha y vaya a propiedades y cambiar el tipo de datos que hay.Debería convertirse en un menú desplegable.

Saludos.

Ruddy

Yo edificado aplicación similar como su pedido.Pero mi solución fue duro.Voy a tratar de decir;

  1. Usted tendrá que crear su propia base de datos de gestión de la docencia y estos objetos será el responsable de crear, actualizar la base de datos de esquema (he creado manualmente).

  2. Vi a buen artículo y código fuente en ADO.NET blog del Equipo de entonces usted también puede descargar EDMTools de este blog, es de código abierto.Y también se puede implementar un modelo de generación y actualización de las rutinas de que en su proyecto.

  3. Finalmente, cuando el su se cambió el esquema debe volver a crear y enlazar su modelo y reconstruir su asamblea de los datos durante el tiempo de ejecución.Pero usted tiene que saber más importante que usted debe atar su modelo de datos de la asamblea para su proyecto con débilmente acoplados (echa un vistazo a este post)

    De otra manera, usted debe esperar para EF versión 4.0 (se CTP 1), que ha anunciado que va a proporcionar crear,eliminar,actualizar DatabaseScript funciones.

Buena cerradura

La manera en que yo estoy haciendo esto (y estoy haciendo todas las cosas que usted menciona, además de cambiar el nombre de las columnas) por la realización de cambios a la base de datos y la regeneración de la EF código utilizando EF Code First.

Yo no soy la manipulación con la EF Code First clases para el bien o el mal (incluyendo sin sentido columnas nombradas para las relaciones) para facilitar el proceso.

Ningún diseñador o ORM esquema generador será capaz de hacer cambios a su base de datos de producción si se ha obligado a los datos en ella.Esta es la razón por la que usted debe comenzar siempre con la comprobación de si los cambios a la base de datos son factibles, trate de ellos en una base de datos de desarrollo y luego adaptar el código para reflejar los cambios.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top