Si usó ASP.NET MVC 4 notará que el valor predeterminado para una aplicación de Internet es usar el proveedor SimpleMembership, todo está bien y funciona multa.Primer código de Entity Framework-First Issues (tabla de perfil de usuario de SimpleMembership)
El problema viene con la generación de bases de datos por defecto, tienen un POCO de UserProfile
define así:
[Table("UserProfile")]
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
}
.. que luego se genera de esta manera:
using (var context = new UsersContext())
{
if (!context.Database.Exists())
{
// Create the SimpleMembership database without Entity Framework migration schema
((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
}
}
Esto funciona bien, la base de datos se genera muy bien y funciona sin problemas. Sin embargo, si he de cambiar la POCO como este y eliminar la base de datos:
[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; }
}
Sólo se generan las primeras 2 columnas, UserId
y EmailAddress
. Funciona muy bien en código (hablando de inicio de sesión/registro), pero obviamente ninguno de mis otros datos de usuario se almacena.
¿Falta algo aquí? Seguramente debería generar la base de datos basada en el objeto completo UserProfile
.
Looks odd. Es esto repetible? Es decir. Limpia y reconstruye todo, comprueba dos veces los resultados. ¿Estás mirando a la derecha Db? –
@HenkHolterman Desafortunadamente sí, he estado volviendo loco por los últimos 2 días con esto, incluso intenté atribuir cada columna con su propio nombre y simplemente no están allí. Lo que lo empeora es que 'UserId' y' EmailAddress' (o lo que sea que les cambie el nombre) * están * allí bien. –
@HenkHolterman También vale la pena señalar que he intentado cambiar esta tabla en un proyecto completamente nuevo solo como prueba y tiene el mismo problema. Lo que no he intentado es usar Entity Framework de forma independiente para generar la base de datos, tal vez lo haga a continuación, pero prefiero mantenerme alineado con la estructura predeterminada de ASP.NET MVC4 como sea posible por ahora ... –