【问题标题】:Entity Framework database seed doesn't seed实体框架数据库种子不播种
【发布时间】:2013-03-13 15:41:11
【问题描述】:

我对 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));
            }
        }
    }
}

【问题讨论】:

    标签: c# asp.net asp.net-mvc entity-framework initialization


    【解决方案1】:

    您没有将更改保存到数据库。请注意,Seed 的默认实现什么都不做。

    尝试在您的种子中添加对SaveChanges 的调用。

    protected override void Seed(EFDbContext context)
    {
        context.Admins.Add(new Admins
        {                
            Username = "admin",
            Password = "admin123456",
        });
        base.Seed(context);
        context.SaveChanges();
    }
    

    【讨论】:

      猜你喜欢
      • 2014-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-21
      • 2020-09-12
      • 1970-01-01
      相关资源
      最近更新 更多