visual una studio referencia puede proyecto para neutral manifiesto hace framework error entityframework ensamblado ejecución definición data con coincide cargar archivo anterior entity-framework

entity framework - una - El número de miembros en el tipo conceptual no coincide con el número de miembros en el tipo del lado del objeto



system badimageformatexception no se puede cargar un ensamblado de referencia para la ejecución (9)

Abra su modelo como XML. Eliminar todas las referencias a ese tipo de la CSDL. Guarde y cierre, luego vuelva a abrir en la GUI. Ahora deberías poder actualizar el modelo como siempre. Si eso no funciona, haga lo mismo, pero elimínelo de MSL también.

Estoy usando .net framework 3.5 SP1.

Después de agregar una columna a una tabla en el servidor Sql (además de cambiar una columna existente de permitir que los nulos no sean anulables), ya no puedo ejecutar mi proyecto sin recibir este error:

El número de miembros del tipo conceptual ''XBRLDimensionalModel.axis_t'' no coincide con el número de miembros del tipo del lado del objeto ''EOL.Xbrl.Persistence.Data.axis_t''. Asegúrese de que el número de miembros sea el mismo.

Renuncié a tratar de encontrar y arreglar el código generado. Ahora he eliminado todos mis archivos relacionados con la entidad local y los he vuelto a generar iniciando de nuevo desde cero y agregando un nuevo elemento (ADO.NET Entity Data Model). Todavía me sale este error.

La única forma en que puedo ejecutar el proyecto ahora es deshacer todos mis cambios pendientes y usar la última versión del control de código fuente y, por supuesto, cambiar las dos columnas modificadas de la base de datos a nullable.

Por lo que he leído hasta ahora, parece que simplemente debería haber podido "actualizar" mi modelo desde la base de datos. Eso dio lugar a esta excepción (arriba). Pero ahora estoy totalmente confundido de que, incluso con una regeneración completa del modelo de entidad y clases de apoyo, todavía estoy recibiendo ese error.

Cambié la propiedad en mi modelo edmx: "Procesamiento de artefactos de metadatos" a "Copiar en el directorio de salida". Los archivos Designer.cs, csdl, msl, ssdl parecen ser consistentes con los últimos cambios en la base de datos.

La excepción se produce la primera vez que se hace referencia a mi instancia de entityModel. Por lo tanto, es antes de cargar o guardar los datos de la tabla modificada.

¿Alguna idea de dónde me voy mal? Gracias TG


Cuando cambie una clave foránea de anulable a no anulable (o viceversa), asegúrese de cambiar la multiplicidad de asociación de 0..1 a 1 (o viceversa). El diseñador a veces pierde esto en una actualización de la base de datos.


Estaba enfrentando el mismo problema, cuando agregué una columna a db y agregué la propiedad respectiva a la entidad (edmx). También estaba usando control de código fuente para mi solución. Como noté, al guardar los cambios en cualquier archivo, guarde los avisos de acción con la opción de sobrescribir. Entonces, sobrescribí el archivo designer.cs y config y el problema se resuelve.

Saludos, Bhushan


Este error también puede ocurrir si el archivo EDMX se cambió fuera de Visual Studio. Haga clic derecho en el archivo EDMX y haga clic en "Ejecutar herramienta personalizada"


Este es un escenario de pesadilla que acabo de experimentar: tengo un sitio web MVC2 y un servicio WCF que se crean por separado, pero comparto una configuración. Dentro de ambos proyectos, usé el mismo nombre de contenedor de entidad; por lo tanto, recogí la misma cadena de conexión para ambos proyectos. Finalmente, los metadatos se desincronizaron entre los dos y causaron este error. La solución obvia fue no usar el mismo nombre de contenedor de entidad en los dos proyectos; el cambio a un nombre diferente me permitió especificar cadenas de conexión únicas, y por lo tanto metadatos, para cada componente que evitó el problema.

Ahora que lo descubrí, es obvio, ¡pero tuve una o dos horas tensas!


Esto parece un poco detallado para un comentario, así que estoy agregando esto como otra respuesta:

En respuesta a la sugerencia de Craig, abrí el archivo edmx en un visor XML y eliminé todas las referencias a Axis_t (incluidas las asociaciones debido a claves externas). De todo el archivo.

Luego "actualicé" el modelo abriendo el archivo edmx como la interfaz GUI, haga clic derecho | actualizar desde la base de datos | Agregar (pestaña) que ahora solo lista la tabla Axis_t. Agregué la tabla que parecía funcionar bien e incluí mi nueva columna y la columna se asignó correctamente.

Entonces ejecuté el proyecto con el mismo resultado. Mismo error que el publicado anteriormente.

Ahora he vuelto a lo que estaba en el control de origen, así como a cambiar las columnas de la base de datos (una nueva y una modificada) como anulables. El proyecto funciona bien. Todavía no he podido implementar con éxito la nueva columna DB en EF. Se comporta como si hubiera alguna versión almacenada / compilada del modelo que no se está actualizando a través del proceso de "actualización".


Tuve este mismo problema durante horas. Encontré que en mi archivo Designer.cs una de las propiedades de mi entidad faltaba sus atributos. (No sé cómo sucedió esto)

[EdmScalarPropertyAttribute(EntityKeyProperty = false, IsNullable = false)] [DataMemberAttribute()] public global::System.Int32 ContractCapacity

Ahora el mensaje de error tiene sentido, este fue el DataMember faltante. Una vez que el atributo fue agregado, funcionó!


Esto me ha sucedido cuando estoy trabajando en dos versiones de la misma aplicación (con diferencias de modelo) que se compilan en las mismas carpetas.

Parece que Visual Studio no "limpia" correctamente la carpeta temporal "obj" y que algunos fragmentos del modelo anterior todavía están allí.

Si simplemente borro todos los archivos de la carpeta "obj" y vuelvo a compilar, este error desaparece.

El modelo en cada versión es perfecto, lo que me estaba volviendo loco.

No decir que esta es la respuesta a la pregunta del OP, pero definitivamente es otra razón para este error.

Steve


  • Haga clic derecho en su archivo edmx y ábralo con XML .
  • Encuentre los tipos de datos incorrectos y cámbielos.
  • Guardar el archivo.

Esto funcionó para mí.