添加控制器时无法获取元数据mvc4

HEL*_*_ME 3 c# asp.net-mvc entity-framework

我正在尝试创建我的第一个mvc类,并且我遇到了一个问题.我在我的主机帐户上使用共享数据库并创建了以下类

namespace MvcApplication2.Models
{
    public class tUsers
    {

            public int UserID { get; set; }
            public string Username { get; set; }
            public string UserEmail { get; set; }
            public string UserPassword { get; set; }
            public int GroupId { get; set; }


    }

    public class tUsersDBContext : DbContext
    {
        public DbSet<tUsers> tUsers { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的连接字符串

   <add name="DefaultConnection" connectionString="Data Source=gdfgdfgdfg;Initial Catalog=fsdf_fdsf;Persist Security Info=True;User ID=ddd_reddntal;Password=fgfggfdg" providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

无法检索"mvcapplication2.models.tusers"的元数据,在模型生成期间检测到一个或多个验证错误:

实体类型用户没有防御密钥.

我的模型名称是否需要与我的表名完全匹配?

Era*_*nga 5

实体框架无法识别您的tUsers类的主键属性.UserID使用Key属性注释属性.如果表名与类名不同,请使用该Table属性指定表名.

尝试对类名使用正确的命名约定.在这种情况下,它应该User不是tUsers.

[Table("MyTableName")]
public class tUsers
{       
        [Key]
        public int UserID { get; set; }
        public string Username { get; set; }
        public string UserEmail { get; set; }
        public string UserPassword { get; set; }
        public int GroupId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

  • 如果您将列ID命名为UserId,它可以自动找到您的主键,但我个人从不使用它,只是为了让您知道 (3认同)