Créer la Clé Étrangère à l'aide d'Annotations de Données
Dans le code ci-dessous, j'ai besoin de configurer une clé étrangère constrant sur ParentInfoAddProperties.ParentQuestionAnswersId de sorte qu'il est tributaire de la ParentQuestionAnswers.Id (qui est une Clé Primaire). Je suis tenté de le faire à l'aide d'annotations de données, mais Entity Framework 6 veut créer une nouvelle colonne de la Clé Étrangère dans mon ParentQuestionAnswers table qui référence la ParentInfoAddProperties.Colonne Id pas la ParentInfoAddProperties.ParentQuestionAnswersId colonne. Je ne veux pas Entity Framework pour créer une nouvelle colonne de la clé étrangère.
Je serais très reconnaissant si quelqu'un peut expliquer ce que annotations de données, ou (si nécessaire) couramment mappages je dois préciser d'atteindre les objectifs de clé étrangère constrant. Merci à l'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; }
}
}
OriginalL'auteur gemini6609 | 2014-06-02
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser les éléments suivants annotation de données, et l'utilisation de l'entité au lieu de int
pour obtenir l'Id que vous pourriez ajouter la propriété
mais vous avez encore besoin de la
ParentQuestionAnswers
de la propriété, de sorte EF vous comprendre .(ces lignes de code doit être placé sous la
ParentInfoAddProperties
classe)essayez [Obligatoire, ForeignKey("ParentQuestionAnswers")] et vous n'avez pas
ParentQuestionsAnswers
, cela devrait êtreParentQuestionAnswers
Je pense que j'ai besoin de réinitialiser le dbContext, de sorte que j'ai complètement reconstruire ma base de données à partir des entités définies?
En outre, un supplément de contrainte de clé étrangère est involontairement construit qui correspond à l'Id de l'ParentInfoAddProperties table à la ParentQuestionAnswers table. Pour toutes suggestions, n'importe qui? Merci d'avance
comme pour votre base de données, vous pouvez le supprimer et exécutez à nouveau le programme ou l'utilisation
DropCreateDatabaseAlways
(google) jusqu'à ce que vous obtenez votre entités de droit. comme pour les autres de clé étrangère, il doit y avoir qu'un, sauf si vous avez ajouté un peu plus de DataAnnotations ? veuillez mettre à jour votre code dans votre question .OriginalL'auteur jony89
Ajouter le
de la colonne Id
http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.keyattribute(v=vs. 110).aspx
et
à la ParentQuestionAnswersId propriété.
http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.schema.foreignkeyattribute.foreignkeyattribute(v=vs. 110).aspx
OriginalL'auteur Oscar