Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

971
Vistas
Clave externa creada en la sombra y agregando 1 aleatorio al nombre de la columna - ASP: NET EF Core

Cuando migro mis nuevos modelos y datos, aparece el siguiente error para varias claves externas:

La propiedad de clave externa 'InsurancePolicy.InsuranceSubjectID1' se creó en estado oculto porque existe una propiedad en conflicto con el nombre simple 'InsuranceSubjectID' en el tipo de entidad, pero no está asignada, ya se usa para otra relación o es incompatible con la asociada. tipo de clave primaria.

Lo extraño es que defino mis relaciones de la misma manera en todos los modelos, pero algunos funcionan bien (se almacena FK sin 1) y otros no.

Ejemplo de mis modelos:

 public class InsurancePolicy { public int InsurancePolicyID { get; set; } [DataType(DataType.Currency)] [Column(TypeName = "money")] public decimal FinalSum { get; set; } public DateTime DateFrom { get; set; } public DateTime DateTo { get; set; } public int? InsuredID { get; set; } public Insured? Insured { get; set; } public int? InsuranceSubjectID; public InsuranceSubject? InsuranceSubject { get; set; } public int? InsuranceSubtypeID; public InsuranceSubtype? InsuranceSubtype { get; set; } } public class InsuranceSubject { public int InsuranceSubjectID { get; set; } [Required] [StringLength(50)] public string Title { get; set; } public string Description { get; set; } [DataType(DataType.Currency)] [Column(TypeName = "money")] public decimal EstimatedValue { get; set; } public int? InsuredID; public Insured? Insured; public int? InsuranceSubjectTypeID { get; set; } public InsuranceSubjectType? InsuranceSubjectType { get; set; } public ICollection<InsurancePolicy>? InsurancePolicies { get; set; } }

Probé mi código sin las propiedades de clave externa y solo dejé la propiedad de navegación de referencia (borré el int y dejé el objeto) y funcionó bien, pero necesito FK ints para futuras implementaciones.

Aquí está el enlace del repositorio de GitHub para obtener más información (extensión del modelo de rama): https://github.com/lenartgolob/Insurance-IS/tree/model-extension

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Agregué public virtual frente a mis propiedades de navegación de referencia y resolvió el problema.

over 4 years ago · Santiago Trujillo Denunciar

0

Para mí, el problema era que el tipo de ID de propiedad en la parte FK difería de la parte de la entidad PK:

 [Range(1, int.MaxValue, ErrorMessage = "Please provide valid payment id")] public int PaymentId { get; set; } // NOTICE INT HERE SHOULD BE LONG public virtual Payment Payment { get; set; }

donde Pago tenía propiedad larga para identificación:

 public class Payment { public long Id {get;set;} //... }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda