Aquí podría ser tu PUBLICIDAD


Qué estoy haciendo mal para obtener "Dos entidades con claves diferentes están mapeadas en la misma fila

votos
0

Ver imágenes:

Diseñador de EF

Tablas SQL

Dos entidades con claves diferentes se asignan a la misma fila. Asegúrese de que estos dos fragmentos de asignación no mapeen dos grupos de entidades con claves superpuestas al mismo grupo de filas.

De hecho, solo una de las dos (o 6 aquí) entidades tendrá la clave para la única fila.

¿Cómo puedo superar esto? ¿Vista de SQL que los combina a todos en una fila? Columna del discriminador calculado en ContactMethod? ¿Cómo debería haber diseñado las tablas de manera diferente para que funcionen mejor con EF?

¿O puedo hacer alguna edición de XML para mantener mi esquema y decirle a EF que confíe en mí de que nunca pondría el mismo Id en más de una clase derivada?

Aquí está: edmx si ayuda.

Publicado el 12/03/2009 a las 18:13
fuente por usuario Professional Sounding Name
En otros idiomas...        العربية       

2 respuestas

votos
3

El enlace al archivo edmx no funciona. Tal vez, debes agregar una etiqueta de condición

<Condition ColumnName="ContactId" IsNull="false" />

a su archivo edmx usando xml-editor:

<AssociationSetMapping Name="FK_Contact_ContactMethod" TypeName="SomeNamespace.FK_Contact_ContactMethod" StoreEntitySet="ContactMethod">
  <EndProperty Name="ContactMethod">
    <ScalarProperty Name="ContactMethodId" ColumnName="ContactMethodId" />
  </EndProperty>
  <EndProperty Name="Contact">
    <ScalarProperty Name="ContactId" ColumnName="ContactId" />
  </EndProperty>
  <Condition ColumnName="ContactId" IsNull="false" />
</AssociationSetMapping>
Respondida el 21/09/2009 a las 07:29
fuente por usuario Puzzled


Aquí podría ser tu PUBLICIDAD


votos
0

Al quitar las claves foráneas de ContactMethod en la base de datos se eliminaron los errores, pero no parece correcto.

Respondida el 12/03/2009 a las 08:16
fuente por usuario Professional Sounding Name