Question

Dans le code ci-dessous, je dois définir une constante de clé étrangère sur ParentInfoAddProperties.ParentQuestionAnswersId afin qu'elle dépende de ParentQuestionAnswers.Id (qui est une clé primaire).J'essaie de le faire en utilisant des annotations de données, mais Entity Framework 6 souhaite créer une nouvelle colonne de clé étrangère dans ma table ParentQuestionAnswers qui fait référence à la colonne ParentInfoAddProperties.Id et non à la colonne ParentInfoAddProperties.ParentQuestionAnswersId.Je ne veux pas qu'Entity Framework crée une nouvelle colonne de clé étrangère.

J'apprécierais grandement que quelqu'un puisse expliquer quelles annotations de données ou (si nécessaire) mappages fluides je devrais spécifier pour obtenir la constante de clé étrangère souhaitée.Merci d'avance.

namespace Project.Domain.Entities
{  
    public class ParentQuestionAnswers
    {
        public ParentQuestionAnswers()
        {
            ParentInfoAddProperties = new ParentInfoAddProperties();
        }

        [Required]
        public int Id { get; set; }

        [Required]
        public int UserId { get; set; }

        public ParentInfoAddProperties ParentInfoAddProperties { get; set; }
    }

    public class ParentInfoAddProperties
    {
        [Required]
        public int Id { get; set; }

        [Required]
        public int ParentQuestionAnswersId { get; set; }
    }
}
Était-ce utile?

La solution

Vous pouvez utiliser l'annotation de données suivante et utiliser l'entité au lieu de l'int

[Required]
[ForeignKey("ParentQuestionAnswers")]
public ParentQuestionAnswers ParentQuestionAnswers { get; set; }

pour obtenir l'identifiant seulement, vous pouvez ajouter la propriété

public int ParentQuestionAnswersId { get; set; }

mais tu as toujours besoin du ParentQuestionAnswers propriété pour que EF vous comprenne.

(ces lignes de code doivent être sous le ParentInfoAddProperties classe)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top