c# – 使用数据注释创建外键

前端之家收集整理的这篇文章主要介绍了c# – 使用数据注释创建外键前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在下面的代码中,我需要在ParentInfoAddProperties.ParentQuestionAnswersId上设置一个外键constrant,以便它依赖于ParentQuestionAnswers.Id(这是一个主键).我试图使用数据注释,但实体框架6想要在我的ParentQuestionAnswers表中创建一个新的外键列,该列引用ParentInfoAddProperties.Id列而不是ParentInfoAddProperties.ParentQuestionAnswersId列.我不希望Entity Framework创建新的外键列.

如果有人能够解释我应该指定哪些数据注释或(如果需要)流畅的映射来实现所需的外键实例,我将不胜感激.提前致谢.

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

解决方法

您可以使用以下数据注释,并使用实体而不是int
[required]
[ForeignKey("ParentQuestionAnswers")]
public ParentQuestionAnswers ParentQuestionAnswers { get; set; }

要获得Id,您只能添加属性

public int ParentQuestionAnswersId { get; set; }

但你仍然需要ParentQuestionAnswers属性,所以EF会理解你.

(这些代码行应该在ParentInfoAddProperties类下)

原文链接:https://www.f2er.com/csharp/244728.html

猜你在找的C#相关文章