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; }
    // ... 
} 

私の質問は、この [Key] 注釈を使用せずに、ProductId を指定するだけで別の ASP .NET プロジェクト (私の最初のもの、これが 2 番目のもの) を実行したことは確かです。誰かが理由を説明できますか? 理解できません..

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; } 
    //...
}

コンベクションについて詳しく知りたい場合は、次の素晴らしい記事から始めることができます。

Code First 規約

これは、Entity Framework ラーニング センターにあります。

于 2013-04-26T08:49:44.403 に答える