3

次のエラーが表示されます。

One or more validation errors were detected during model generation:   
\tSystem.Data.Entity.Edm.EdmEntityType: : EntityType 'UserAccount' has no key defined. Define the key for this EntityType.
\tSystem.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet 'UserAccounts' is based on type 'UserAccount' that has no keys defined.

このエラーは、次のコードによってトリガーされます。

_Db.Database.Initialize(true);

何らかの理由でモデルの [Key] 属性を取得していないと思います。元々、キー属性を追加していないコードを実行しようとしたときに、このキーの適用を妨げている何かが作成/キャッシュされたことを意味しますか?

MVC4 プロジェクトは、Entity Framework 5 を含めることを除けば、ほぼ空のセットアップです。

型式コード

public class AccountContext: DbContext
{
    public AccountContext()
        : base("DefaultConnection")
    {          
    }

    public DbSet<UserAccount> UserAccounts { get; set; }
}

[Table("UserAccount")]
public class UserAccount
{
    [Key]
    [Required]        
    public string Username;

    [Required]
    [DataType(DataType.Password)]
    [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
    public string Password;  

    public string Name;
    public string Surname;

    [Required] 
    public string Email;             
}

Global.asax の初期化

Database.SetInitializer(new DropCreateDatabaseAlways<AccountContext>());
var _Db = new AccountContext();
_Db.Database.Initialize(true);

私はすでにいくつかの検索を行っており、Id / UserId などの命名規則を理解しています。

4

2 に答える 2