我正在尝试将自定义 UserProfile 类存储在 ASP.NET MVC4 Internet 应用程序中。UserProfile 类名为“Usuario”,如下所示:
[Table("Usuarios")]
public class Usuario
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
[EmailAddress]
public string Correo { get; set; }
public string Twitter { get; set; }
public string Perfil { get; set; }
public string LinkedIn { get; set; }
public List<Evento> Ponencias { get; set; }
public List<Evento> Asistencias { get; set; }
public List<Evento> EventosCreados { get; set; }
}
我还创建了一个名为 WeventioDb 的 Context 类,如下所示:
public class WeventioDb : DbContext
{
public DbSet<Usuario> Usuarios { get; set; }
public DbSet<Evento> Eventos { get; set; }
public DbSet<Comentario> Comentarios { get; set; }
public DbSet<Ubicacion> Ubicaciones { get; set; }
}
问题是,当用户注册时,它不会存储到“Usuario”表中,而是存储在“Usuario”中(注意末尾缺少的 S),并且只有一个 UserName 属性和 UserId。我希望在用户注册时将其存储到“Usuarios”表中。
我的注册操作如下所示:
public ActionResult Register(RegisterModel model)
{
if (ModelState.IsValid)
{
try
{
WebSecurity.CreateUserAndAccount(model.UserName, model.Password);
WebSecurity.Login(model.UserName, model.Password);
return RedirectToAction("Index", "Home");
}
catch (MembershipCreateUserException e)
{
ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
}
}
return View(model);
}
关于如何创建用户并将其存储到“Usuarios”表中并将其与会员资格一起使用的任何想法?
Upadte:这就是我最初的迁移(表创建)的样子,它正在创建正确的表“Usuario”,但是当我转到 .mdf 文件时,“Usuario”表是空的,所有注册用户都在“Usuario”中" 如前所述:
public partial class Initial : DbMigration
{
public override void Up()
{
CreateTable(
"dbo.Usuarios",
c => new
{
UserId = c.Int(nullable: false, identity: true),
UserName = c.String(),
Correo = c.String(),
Twitter = c.String(),
Perfil = c.String(),
LinkedIn = c.String(),
Evento_Id = c.Int(),
Evento_Id1 = c.Int(),
})
.PrimaryKey(t => t.UserId)
.ForeignKey("dbo.Eventos", t => t.Evento_Id)
.ForeignKey("dbo.Eventos", t => t.Evento_Id1)
.Index(t => t.Evento_Id)
.Index(t => t.Evento_Id1);
CreateTable(
"dbo.Eventos",
c => new
{
Id = c.Int(nullable: false, identity: true),
Fecha = c.DateTime(nullable: false),
Precio = c.Double(nullable: false),
Descripcion = c.String(),
Schema = c.String(),
Sector = c.String(),
Banner = c.String(),
Imagen = c.String(),
Twitter = c.String(),
Hashtag = c.String(),
Programa = c.String(),
Organizador_UserId = c.Int(),
Rating_ID = c.Int(),
Sitio_Id = c.Int(),
Usuario_UserId = c.Int(),
Usuario_UserId1 = c.Int(),
Usuario_UserId2 = c.Int(),
})
.PrimaryKey(t => t.Id)
.ForeignKey("dbo.Usuarios", t => t.Organizador_UserId)
.ForeignKey("dbo.Ratings", t => t.Rating_ID)
.ForeignKey("dbo.Ubicacions", t => t.Sitio_Id)
.ForeignKey("dbo.Usuarios", t => t.Usuario_UserId)
.ForeignKey("dbo.Usuarios", t => t.Usuario_UserId1)
.ForeignKey("dbo.Usuarios", t => t.Usuario_UserId2)
.Index(t => t.Organizador_UserId)
.Index(t => t.Rating_ID)
.Index(t => t.Sitio_Id)
.Index(t => t.Usuario_UserId)
.Index(t => t.Usuario_UserId1)
.Index(t => t.Usuario_UserId2);
CreateTable(
"dbo.Ratings",
c => new
{
ID = c.Int(nullable: false, identity: true),
Texto = c.String(),
Puntaje = c.Int(nullable: false),
Fecha = c.DateTime(nullable: false),
Autor_UserId = c.Int(),
})
.PrimaryKey(t => t.ID)
.ForeignKey("dbo.Usuarios", t => t.Autor_UserId)
.Index(t => t.Autor_UserId);
CreateTable(
"dbo.Ubicacions",
c => new
{
Id = c.Int(nullable: false, identity: true),
Latitud = c.Double(nullable: false),
Longitud = c.Double(nullable: false),
Direccion = c.String(),
Nombre = c.String(),
Twitter = c.String(),
CodigoPostal = c.Int(nullable: false),
Ciudad = c.String(),
Estado = c.String(),
})
.PrimaryKey(t => t.Id);
CreateTable(
"dbo.Comentarios",
c => new
{
Id = c.Int(nullable: false, identity: true),
Texto = c.String(),
Fecha = c.DateTime(nullable: false),
Autor_UserId = c.Int(),
Evento_Id = c.Int(),
})
.PrimaryKey(t => t.Id)
.ForeignKey("dbo.Usuarios", t => t.Autor_UserId)
.ForeignKey("dbo.Eventos", t => t.Evento_Id)
.Index(t => t.Autor_UserId)
.Index(t => t.Evento_Id);
}
public override void Down()
{
DropIndex("dbo.Comentarios", new[] { "Evento_Id" });
DropIndex("dbo.Comentarios", new[] { "Autor_UserId" });
DropIndex("dbo.Ratings", new[] { "Autor_UserId" });
DropIndex("dbo.Eventos", new[] { "Usuario_UserId2" });
DropIndex("dbo.Eventos", new[] { "Usuario_UserId1" });
DropIndex("dbo.Eventos", new[] { "Usuario_UserId" });
DropIndex("dbo.Eventos", new[] { "Sitio_Id" });
DropIndex("dbo.Eventos", new[] { "Rating_ID" });
DropIndex("dbo.Eventos", new[] { "Organizador_UserId" });
DropIndex("dbo.Usuarios", new[] { "Evento_Id1" });
DropIndex("dbo.Usuarios", new[] { "Evento_Id" });
DropForeignKey("dbo.Comentarios", "Evento_Id", "dbo.Eventos");
DropForeignKey("dbo.Comentarios", "Autor_UserId", "dbo.Usuarios");
DropForeignKey("dbo.Ratings", "Autor_UserId", "dbo.Usuarios");
DropForeignKey("dbo.Eventos", "Usuario_UserId2", "dbo.Usuarios");
DropForeignKey("dbo.Eventos", "Usuario_UserId1", "dbo.Usuarios");
DropForeignKey("dbo.Eventos", "Usuario_UserId", "dbo.Usuarios");
DropForeignKey("dbo.Eventos", "Sitio_Id", "dbo.Ubicacions");
DropForeignKey("dbo.Eventos", "Rating_ID", "dbo.Ratings");
DropForeignKey("dbo.Eventos", "Organizador_UserId", "dbo.Usuarios");
DropForeignKey("dbo.Usuarios", "Evento_Id1", "dbo.Eventos");
DropForeignKey("dbo.Usuarios", "Evento_Id", "dbo.Eventos");
DropTable("dbo.Comentarios");
DropTable("dbo.Ubicacions");
DropTable("dbo.Ratings");
DropTable("dbo.Eventos");
DropTable("dbo.Usuarios");
}
}