1

我使用了用户实体类:

 public class Users
{
    public int UserId { get; set; } 
    public string NickName { get; set; }
    public string FirstName { get; set; }
    public string Password { get; set; }
    public DateTime BirthDate { get; set; }
    public int Age { get; set; }
    public string CountryName { get; set; }
    public string Email { get; set; }
    public int Gender { get; set; }
    public int DayInvitation { get; set; }
    public string CityName { get; set; }
    public string EyesColors { get; set; }
    public string Avatar { get; set; }
    public int Popularity { get; set; }
} 

我收到以下错误:

System.Data.Entity.Edm.EdmEntityType: : EntityType 'Users' 没有定义键。

所以我添加了 [Key] 关键字..

 public class Users
{
    [Key]
    public int UserId { get; set; } 
    public string NickName { get; set; }
    public string FirstName { get; set; }
    // ... 
} 

现在我的问题是,我很确定我做了另一个 ASP .NET PROJECT(我的第一个,这是第二个)而不使用这个 [Key] 注释,只是通过指定 ProductId,有人可以解释我为什么吗?看不懂。。

4

1 回答 1

3

自动主键名称发现约定如下:

  • 你有一个名为Id
  • 或者您有一个名为YourClassNameId.

在您的情况下,您的班级Users最后以“s”命名。

因此,为了进行约定工作,您需要命名您的属性UsersId(注意“s”):

public class Users
{
    public int UsersId { get; set; } 
    //...
}

要不就Id

public class Users
{
    public int Id { get; set; } 
    //...
}

如果您想了解有关传统的更多信息,可以从这篇精彩的文章开始:

代码优先约定

可以在实体框架学习中心找到。

于 2013-04-26T08:49:44.403 回答