Si vous avez utilisé ASP.NET MVC 4, vous remarquerez que l'application Internet utilise par défaut le fournisseur SimpleMembership, ce qui est très bien et fonctionne parfaitement.
Le problème vient de la génération de la base de données par défaut, ils ont un POCO pour la base de données. UserProfile
défini comme suit :
[Table("UserProfile")]
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
}
qui est ensuite généré comme ceci :
using (var context = new UsersContext())
{
if (!context.Database.Exists())
{
// Create the SimpleMembership database without Entity Framework migration schema
((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
}
}
Cela fonctionne bien, la base de données est générée sans problème et fonctionne sans problème. Cependant, si je modifie le POCO comme ceci et que je supprime la base de données :
[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; }
}
Seules les 2 premières colonnes sont générées, UserId
y EmailAddress
. Le code fonctionne parfaitement (il parle de la connexion et de l'enregistrement), mais il est évident qu'aucune de mes autres données utilisateur n'est stockée.
Est-ce que je rate quelque chose ? La base de données devrait sûrement être générée à partir de l'ensemble des données de la base de données. UserProfile
objet.