实体类型没有定义键 - 代码优先

Dev*_*evT 10 asp.net-mvc entity-framework-4

我是MVC以及实体框架的新手.我搜索了很多并找到了几个类似的问题(例如实体类型没有定义键),但它们没有解决我的问题.

namespace MvcAppInvoice.Models
{
    public class Customer
    {
        public int CustomerID { get; set; }
        public string FirstName { get; set; }
        public string SurName { get; set; }
        public virtual CustomerType Type { get; set; }
    }

    public class CustomerType
    {
        public int TypeId { get; set; }
        public string TypeName { get; set; }
        public virtual ICollection<Customer> customers { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

添加控制器

当我尝试添加控制器时,它会出现以下错误:

错误

arc*_*hil 14

通常,代码首先按惯例隐含地为实体类型设置密钥,如果属性被命名IdTypeName+Id.在你的情况下,TypeId既不是它们,所以你应该使用KeyAttribute或使用流畅的语法,使用EntityTypeConfiguration.HasKey方法明确地将其标记为键.