我已经用 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 秒失败。这会是公司表中非人口的原因吗?
任何帮助将不胜感激。