与EF6中非键列的关系

时间:2014-11-17 14:32:05

标签: c# sql entity-framework ef-code-first

我试图在非主列上使用外键,这是我的模型。 它的一对多关系。问题可以有多个答案。但答案只有问题。

用于存放用户问题的模型:

public class QQuestions
{

    public QQuestions()
    {
        Answers = new List<QAnswers>();
    }

    public int Id { get; set; }

    public int QId { get; set; }

    public string QuestionContext { get; set; }

    public virtual ICollection<QAnswers> Answers { get; set; }

}

以及持有用户答案的​​模型:

public class QAnswers
{

    public int Id { get; set; }

    public int QId { get; set; }

    [ForeignKey("QId")]
    public QQuestions QQuestions { get; set; }

    public string AnswerContext { get; set; }

}

但是当我尝试在sql中插入数据时,我收到了这个错误:

The INSERT statement conflicted with the FOREIGN KEY constraint "FK_dbo.QAnswers_dbo.QQuestions_QId". The conflict occurred in database "ResaleJadvali", table "dbo.QQuestions", column 'Id'.

我做错了什么,我该如何解决这个问题。 谢谢。

1 个答案:

答案 0 :(得分:0)

EF尚未将非pk候选键识别为外键的目标(EF工作项位于此处:https://entityframework.codeplex.com/workitem/299) - 您必须在外键中引用相关实体的主键。 / p>