sql >> Base de Datos >  >> RDS >> Mysql

varias entidades añadidas pueden tener la misma clave principal en la semilla de la base de datos

En su edición, menciona 'Múltiples entidades agregadas pueden tener la misma clave principal'. error. Sin conocer todos los detalles de lo que está haciendo aquí, parece que está creando una relación con una entidad, de las cuales hay dos en el contexto con la misma ID. Estas son probablemente entidades nuevas que aún no se han guardado y es donde obtienen una identificación generada automáticamente de la base de datos. Si la relación se basa en el Id., existe cierta ambigüedad porque Entity Framework no puede determinar a cuál de las nuevas entidades apunta realmente la relación; ambas tienen el Id. al que apunta la relación.

Hay dos arreglos potenciales.

  1. Genere un identificador único y temporal para las entidades a medida que se crean en el contexto. Entity Framework descartará esto a medida que se guarde la entidad, pero hasta ese momento, puede usarlo para diferenciar una nueva entidad de otra. He usado enteros negativos para este propósito en el pasado.

  2. No cree las relaciones usando ID sino en referencias a entidades. Si Entity Framework tiene una referencia directa a la entidad, entonces no necesita pasar por el proceso de identificación de la entidad basada en identificadores no únicos y no debería tener este problema.