title: asp.net MVC 4 model [Key] attribute not recognized
body: <pre><code>using System;
  using System.ComponentModel.DataAnnotations;
  using System.Data.Entity;
  
  //my model
  public class Roll
  {
      [Key]
      public uint Id { get; set; }
      public long RandomSeed { get; set; }
      public string Expression { get; set; }
      public DateTime DateCreated { get; set; }
      public long Total { get; set; }
  }
  
  //my context
  public class DiceboxContext : DbContext
  {
      public DbSet&lt;Roll&gt; Rolls { get; set; }
  }
  
  //my controller 
  
  using System;
  using System.Collections.Generic;
  using System.Data;
  using System.Data.Entity;
  using System.Linq;
  using System.Web;
  using System.Web.Mvc;
  
  namespace dicebox.Controllers
  {
      public class RollController : Controller
      {
          private DiceboxContext db = new DiceboxContext();
  
          //
          // GET: /Roll/
  
          public ActionResult Index()
          {
              return View(db.Rolls.ToList());
          }
  
          //
          // GET: /Roll/Details/5
  
          public ActionResult Details(int id = 0)
          {
              Roll roll = db.Rolls.Find(id);
              if (roll == null)
              {
                  return HttpNotFound();
              }
              return View(roll);
          }
  
          //
          // GET: /Roll/Create
  
          public ActionResult Create()
          {
              return View();
          }
  
          //
          // POST: /Roll/Create
  
          [HttpPost]
          public ActionResult Create(Roll roll)
          {
              if (ModelState.IsValid)
              {
                  db.Rolls.Add(roll);
                  db.SaveChanges();
                  return RedirectToAction(&quot;Index&quot;);
              }
  
              return View(roll);
          }
  
          //
          // GET: /Roll/Edit/5
  
          public ActionResult Edit(int id = 0)
          {
              Roll roll = db.Rolls.Find(id);
              if (roll == null)
              {
                  return HttpNotFound();
              }
              return View(roll);
          }
  
          //
          // POST: /Roll/Edit/5
  
          [HttpPost]
          public ActionResult Edit(Roll roll)
          {
              if (ModelState.IsValid)
              {
                  db.Entry(roll).State = EntityState.Modified;
                  db.SaveChanges();
                  return RedirectToAction(&quot;Index&quot;);
              }
              return View(roll);
          }
  
          //
          // GET: /Roll/Delete/5
  
          public ActionResult Delete(int id = 0)
          {
              Roll roll = db.Rolls.Find(id);
              if (roll == null)
              {
                  return HttpNotFound();
              }
              return View(roll);
          }
  
          //
          // POST: /Roll/Delete/5
  
          [HttpPost, ActionName(&quot;Delete&quot;)]
          public ActionResult DeleteConfirmed(int id)
          {
              Roll roll = db.Rolls.Find(id);
              db.Rolls.Remove(roll);
              db.SaveChanges();
              return RedirectToAction(&quot;Index&quot;);
          }
  
          protected override void Dispose(bool disposing)
          {
              db.Dispose();
              base.Dispose(disposing);
          }
      }
  }
  </code></pre>
  <p>Most of this is boilerplate automatically generated code. Any time I hit the Any action except for the get /Roll/Create Action, it blows up with the following error message:</p>
  <blockquote>
  <p>System.Data.Entity.Edm.EdmEntityType: : EntityType 'Roll' has no key defined. Define the key for this EntityType.</p>
  <p>System.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet 'Rolls' is based on type 'Roll' that has no keys defined.</p>
  </blockquote>
  <p>But as you can already see, there is a key defined. There is also a key defined for the database table &quot;Rolls&quot; that backs this model. Every answer I get from google suggests adding the [Key] annotation, and I already have.</p>
  <p>What am I doing wrong?</p>