我使用EF创建了MVC4项目,并且刚刚尝试为已成功创建的数据库表创建种子。我创建了一个初始化类,如下所示:
public class MyInitializer : DropCreateDatabaseIfModelChanges<MyContext>
{
protected override void Seed(MyContext context)
{
var companies = new List<Company>
{
new Company { CompanyID = 1, CompanyName = "eBay", LogoURL = "~/Images/test1.jpg" },
new Company { CompanyID = 2, CompanyName = "Coca Cola", LogoURL = "~/Images/test2.jpg" },
new Company { CompanyID = 3, CompanyName = "Google", LogoURL = "~/Images/test3.jpg" },
new Company { CompanyID = 4, CompanyName = "Microsoft", LogoURL = "~/Images/test.jpg" }
};
companies.ForEach(c => context.Company.Add(c));
context.SaveChanges();
}
}
在我的Context类中,我有以下内容:
public MyContext(string connString) : base(connString)
{
this.Configuration.LazyLoadingEnabled = false;
Database.SetInitializer<MyContext>(new MyInitializer());
this.Database.CreateIfNotExists();
this.Database.Initialize(true);
}
数据库正在成功创建,但数据没有像我预期的那样输入到Company表中。我查看了事件日志,我收到以下消息:
信息:用户DOMAIN \ username'登录失败。原因:无法打开显式指定的数据库。 [客户:xxx.xxx.x.xx]
信息:启动数据库'dbname'
登录似乎在数据库“启动”前2秒失败。这会成为公司表中非人口的原因吗?
非常感谢任何帮助。