Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

961
Views
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 answers
Answer question

0

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

over 4 years ago · Santiago Trujillo Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!