Ошибка переноса кода C # Entity Framework, ключ не определен, хотя ключ определен - PullRequest
0 голосов
/ 20 января 2019

Я использую Entity Framework код-первый подход.Я получаю следующую ошибку при запуске Update-Database -script в пустой базе данных, после запуска enable-migrations и add-migration:

standardvba.DataAccessLayer.LessonQuestion:: EntityType «LessonQuestion» не имеет ключаопределены.Определите ключ для этого EntityType.
LessonQuestions: EntityType: EntitySet «LessonQuestions» основан на типе «LessonQuestion», для которого не определены ключи.

LessonQuestion.cs:

public partial class LessonQuestion
{
    public LessonQuestion()
    {
        this.LessonQuestionDetails = new List<LessonQuestionDetail>();
    } 

    [Key]
    public int QuestionID; // Key is defined

    public int OrderNumber;

    [ForeignKey("ParentQuestion")]
    public int ParentQuestionID;  

    [ForeignKey("Lesson")]
    public int LessonID { get; set; }

    [ForeignKey("ActionedBy")]    
    public int ActionedByUserID { get; set; }
    [MaxLength(1000)]
    public string Question { get; set; } 
    public bool IsApproved { get; set; }

    [Required]  // Sets the CASCADE constraint, while creating table
    public virtual CourseLesson Lesson { get; set; }

    public virtual SiteUser ActionedBy { get; set; }

    public virtual ICollection<LessonQuestionDetail> LessonQuestionDetails { get; set; }

    public virtual LessonQuestion ParentQuestion { get; set; }
}

Я пробовал варианты, такие как удаление и повторное создание папки Migrations, но это не сработало.

1 Ответ

0 голосов
/ 20 января 2019

Ключ должен быть Public Property. В вашем случае это поле. Вам нужно изменить его следующим образом

[Key]
public int QuestionID{get;set;}
...