继续获取Entitytype没有定义键

时间:2015-06-13 13:53:53

标签: c# entity-framework asp.net-mvc-5

我知道这个问题是重复的,但遗憾的是我没有找到解决问题的方法。即使有很多关于此事的帖子。

所以,就像主题所说,我得到的例外是:

entitytype has no key defined

我的模型看起来像这样:

public class QuestionModel
{               
    public int ID { get; set; }

    [DisplayName("Question")]
    public string Question { get; set; }

    public List<string> Responses { get; set; }

    [DisplayName("Number of answers")]
    public int NumberOfAnswers { get; set; }
}

控制器中的代码:

[HttpPost]
    public ActionResult RegisterQuestion(QuestionModel model)
    {
        if (ModelState.IsValid)
        {
            using (var context = new DataBaseContext())
            {
                var question = new QuestionModel
                {
                    NumberOfAnswers = model.NumberOfAnswers,
                    Question = model.Question,
                    Responses = model.Responses
                };

                context.Question.Add(question);

                context.SaveChanges();
            }
        }

        return View("RegisteredQuestion");
    }

阅读几篇帖子,如果出现以下情况,可能会发生此异常:

  1. 缺少钥匙:(我确实有一把钥匙,此处名为...... int ID {...}
  2. 班级名称不等于ID会员名称:(这对我来说不是问题,使用int ID
  3. 会员没有getter / setter :(但我确实有gettter和setter)
  4. ID成员不公开:(我所有的属性都是公开的)
  5. 当存在多个ID时,实体框架中的混淆。例如:

    public int oneID {get;组; } public int anotherID {get;组; } 但这不是我的问题,因为我只有一个ID。但为了以防万一,我确实尝试添加Key注释,因此我的id属性变为:
    [Key] public int ID { get; set; }

  6. 但没有运气。我已经注意到我遇到的这个错误的任何原因,但我仍然错过了一些。任何帮助都非常感谢

1 个答案:

答案 0 :(得分:0)

我重启了我的VS13(我不经常这样做,因为它总是打开的)。哪有帮助。通常我只是重建项目,这已经足够了。但肯定会发生一些有趣的事情。 抱歉浪费你的时间。我也浪费了自己的时间没有重新启动VS,但我从未想过这个选项。