ASP.NET MVC 4 を使用したことがある場合は、インターネット アプリケーションの既定で SimpleMembership プロバイダーが使用されることに気付くでしょう。これはすべて問題なく、正常に動作します。
UserProfile
問題はデフォルトのデータベース生成に伴い、次のように定義された POCO があります。
[Table("UserProfile")]
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
}
.. 次のように生成されます。
using (var context = new UsersContext())
{
if (!context.Database.Exists())
{
// Create the SimpleMembership database without Entity Framework migration schema
((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
}
}
これは正常に動作し、データベースは問題なく生成され、問題なく動作します。ただし、POCO を次のように変更してデータベースを削除する場合:
[Table("UserProfile")]
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string EmailAddress { get; set; }
public string FirstName { get; set; }
public string Surname { get; set; }
public string Country { get; set; }
public string CompanyName { get; set; }
}
最初の 2 列のみが生成されUserId
ますEmailAddress
。コード的には問題なく動作しますが(ログイン/登録の話)、明らかに他のユーザーデータは保存されていません。
ここで何か不足していますか?確かに、UserProfile
オブジェクト全体に基づいてデータベースを生成する必要があります。