Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

968
Visualizações
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 Respostas
Responde à pergunta

0

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

over 4 years ago · Santiago Trujillo Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda