Pergunta

No código abaixo, eu preciso definir uma chave estrangeira constrant no ParentInfoAddProperties.ParentQuestionAnswersId, de modo que ele é dependente ParentQuestionAnswers.Id (que é uma Chave Primária).Eu estou tentando fazer isso usando data annotations, mas o Entity Framework 6 quer criar uma nova coluna de Chave Estrangeira na minha ParentQuestionAnswers tabela que referencia o ParentInfoAddProperties.Coluna de identificação não o ParentInfoAddProperties.ParentQuestionAnswersId coluna.Eu não quero Entity Framework para criar uma nova coluna de chave estrangeira.

Eu apreciaria muito se alguém pode explicar o que anotações de dados ou (se necessário) fluente mapeamentos eu deveria especificar para alcançar o desejado de chave estrangeira constrant.Obrigado antecipadamente.

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; }
    }
}
Foi útil?

Solução

Você poderia usar a seguinte anotação de dados, e utilizar entidade em vez de int

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

para obter o Id só você pode adicionar a propriedade

public int ParentQuestionAnswersId { get; set; }

mas você ainda precisa do ParentQuestionAnswers propriedade, de modo que a EF vai entender você .

(essas linhas de código deve estar sob a ParentInfoAddProperties classe)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top