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

969
Visualizações
Foreign key created in shadow and appending random 1 to column name - ASP:NET EF Core

When I migrate my new models and data I get the following error for multiple foreign keys:

The foreign key property 'InsurancePolicy.InsuranceSubjectID1' was created in shadow state because a conflicting property with the simple name 'InsuranceSubjectID' exists in the entity type, but is either not mapped, is already used for another relationship, or is incompatible with the associated primary key type.

The weird thing is that I define my relationships the same throughout all models, but some work okay (FK without 1 is stored) and some don't.

Example of my models:

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; }
}

I tried my code without the foreign key properties and only left the reference navigation property (deleted the int and left the object) and it worked okay, but I need FK ints for future implementation.

Here is GitHub repo link for more insight (branch model-extension): https://github.com/lenartgolob/Insurance-IS/tree/model-extension

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

I added public virtual in front of my reference navigation properties and it solved the issue.

over 4 years ago · Santiago Trujillo Relatório

0

For me the problem was the type of property ID in the FK part differed from the one in PK entity part:

    [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; }

where Payment had long property for ID:

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