2010-06-17 11 views
7

Después de convertir mi proyecto capa de acceso a datos de ADO.NET Entity Framework v1 a v4 una tiene un montón de errores para cada una de las clases de entidad:conversión Marco de la entidad de V1 a un problema v4

Error 10016: Error de resolución del tema 'EntityTypeShape'. El mensaje de excepción es: 'Referencia sin resolver' NS.EntityName1 '.'. DataAccessLayer \ Model.edmx

y

10016 de error: Error de resolución del tema 'AssociationConnector'. El mensaje de excepción es: 'NS.EntityName1'. '. DataAccessLayer \ Model.edmx

¿Alguien sabe qué es esto y cómo solucionarlo?

+0

Hola Max. Acabo de actualizar una de nuestras soluciones y estoy teniendo el mismo problema que tú. ¿Has encontrado alguna solución a esto? –

+0

No. Recreé todo desde cero. – Max

Respuesta

4

Tuve exactamente el mismo problema. No sé si este es su problema o no, pero al mirar el edmx en la vista xml encontré que tenía referencias duplicadas en el xml para cada uno de los elementos con ese error. Todo lo que tuve que hacer fue eliminar las referencias duplicadas y todo funcionó.

He aquí un ejemplo de lo que quiero decir:

<EntityTypeShape EntityType="PackageManagementEntityModel.Package" Width="1.5" PointX="0.75" PointY="0.75" Height="3.5644742838541665" IsExpanded="true" /> 
<EntityTypeShape EntityType="PackageManagementEntityModel.ShipLane" Width="1.5" PointX="2.75" PointY="0.75" Height="1.7566536458333331" IsExpanded="true" /> 
<EntityTypeShape EntityType="PackageManagement.EntityModel.Package" Width="1.5" PointX="0.75" PointY="0.75" Height="3.5844742838541652" /> 
<EntityTypeShape EntityType="PackageManagement.EntityModel.ShipLane" Width="1.5" PointX="2.625" PointY="0.75" Height="1.7566536458333335" /> 
+0

Gracias, pero desafortunadamente este no es mi caso – Max

+0

Sí, esto funcionó para mí también. –

+0

Funciona para mí también. Resultó que estaban haciendo referencia a algunas relaciones no existentes. Supongo que EF debería haberlos quitado. – ritcoder

5

Si el modelo es pequeño, es probable que sea más fácil de simplemente regenerarlo. Si prefiere solucionarlo, puede modificar el XML en el editor XML manualmente, antes o después de la conversión. El problema, en mi caso, era que los atributos de EntityType no eran correctos, específicamente el espacio de nombres era incorrecto. No estoy seguro de cómo funcionó correctamente en VS2008 pero no tenía el deseo de seguir adelante. Si no le importa perder el diseño de su modelo, la forma más fácil de solucionarlo es borrar todo dentro de la etiqueta <Diagram>, de modo que se parece a esto:

<!-- Diagram content (shape and connector positions) --> 
<edmx:Diagrams> 
    <Diagram Name="YourDiagramName"> 
    </Diagram> 
</edmx:Diagrams> 

guardarlo y volver a abrir el modelo en el el diseñador. El problema debería resolverse ahora.

Si desea conservar su diseño, en lugar de simplemente eliminar todo dentro de la etiqueta <Diagram>, deberá corregir los atributos de EntityType que no sean correctos. El truco es asegurarse de que se especifique el nombre de tipo completo. En mi caso, el espacio de nombres tenía algo extra: no estoy seguro de cómo llegó allí ni cómo funcionó en VS2008, pero corregirlo es el primer paso. Es posible que desee verificar el espacio de nombres y el nombre de la entidad mirando el código generado para el modelo.

Intenté esta solución tanto en VS2008 como en VS2010 y obtuve resultados diferentes. En VS2010, la simple corrección de los atributos de EntityType solucionó el problema de inmediato. En VS2008, recibí un error al volver a abrir el modelo, "El parámetro es incorrecto". Para resolver este problema, pude editar manualmente el XML nuevamente. Esta vez eliminé todas las etiquetas <AssociationConnector> (y cualquier elemento secundario). Luego guardé el archivo y todo pareció funcionar nuevamente.

Cuestiones relacionadas