次のエラーが表示されます。
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 などの命名規則を理解しています。