[英]Entity Framework database seed doesn't seed
我对EF很新。 我正在尝试使用MVC 4覆盖我的自定义初始化程序中的Seed
方法。
问题是当EF创建数据库时,我没有在Admins
表中找到任何初始记录。 这是我的代码:
namespace FP.Domain.Configurations
{
public class InitializeSeed : DropCreateDatabaseIfModelChanges<EFDbContext>
{
protected override void Seed(EFDbContext context)
{
context.Admins.Add(new Admins
{
Username = "admin",
Password = "admin123456",
});
base.Seed(context);
}
}
}
这是我的控制器:
namespace FP.WebUI.Controllers
{
public class AdminController : Controller
{
public ViewResult Login()
{
Database.SetInitializer(new InitializeSeed());
return View();
}
}
}
这是我的Admins
实体:
namespace FP.Domain.Entities
{
public class Admins
{
public int ID { get; set; }
public string Username { get; set; }
public string HashedPassword { get; set; }
private string _password;
public string Password
{
set
{
this._password = value;
byte[] tempSrc = ASCIIEncoding.ASCII.GetBytes(_password);
HashedPassword = Convert.ToBase64String(new SHA256CryptoServiceProvider().ComputeHash(tempSrc));
}
}
}
}
您没有将更改保存到数据库。 请注意,Seed的默认实现不执行任何操作。
尝试在Seed中添加对SaveChanges的调用。
protected override void Seed(EFDbContext context)
{
context.Admins.Add(new Admins
{
Username = "admin",
Password = "admin123456",
});
base.Seed(context);
context.SaveChanges();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.