Do viewmodels need keys?

Viewed 7764

I have my view model :

namespace projInterview.Models
{
    public class QuestionViewModel
    {
        public piQuestion Question { get; set; }
        public List<piAnswer> Answers { get; set; }
        public piQuestionFavorite QuestionFavorite { get; set; }
        public piQuestionLevel QuestionLevel { get; set; }

        public QuestionViewModel(piQuestion question, List<piAnswer> answers )
        {
            Question = question;
            Answers = answers;
        }
    }
}

The VM is a standalone class. I did not scaffold this out to a controller.

In my controller:

namespace projInterview.Controllers {
    public class QuestionController : Controller
    {
        private ProjectContext db = new ProjectContext();

        public ActionResult Edit(int? id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            piQuestion piquestion = db.piQuestions.Single(x => x.QuestionID == id);

            List<piAnswer> piAnswers = db.piAnswers.Where((x => x.QuestionID == id)).ToList();
            var questionViewModel = new QuestionViewModel(piquestion,piAnswers);

            return View(questionViewModel); 
        } 
}

When I get to this line:

piQuestion piquestion = db.piQuestions.Single(x => x.QuestionID == id);

I get the following error:

One or more validation errors were detected during model generation:

projInterview.DAL.QuestionViewModel: : EntityType 'QuestionViewModel' has no key defined. Define the key for this EntityType. questionViewModels: EntityType: EntitySet 'questionViewModels' is based on type 'QuestionViewModel' that has no keys defined.

piQuestion and piAnswer both have keys in the original models that the viewmodel is using. What am I doing incorrectly?

2 Answers
Related