Asp.net mvc 3 EF5在播种时断裂
我将我的MVC项目从EF4.3.1升级到最新的EF5。从那时起,我的数据库将始终无法初始化。如果我将引用更改回EF4.3.1,则一切正常。有什么好处Asp.net mvc 3 EF5在播种时断裂,asp.net-mvc-3,entity-framework,seeding,Asp.net Mvc 3,Entity Framework,Seeding,我将我的MVC项目从EF4.3.1升级到最新的EF5。从那时起,我的数据库将始终无法初始化。如果我将引用更改回EF4.3.1,则一切正常。有什么好处 public class ArticleInitializer : DropCreateDatabaseAlways<ArticleContext> { protected override void Seed(ArticleContext context) { Config.Articles.ForEa
public class ArticleInitializer : DropCreateDatabaseAlways<ArticleContext>
{
protected override void Seed(ArticleContext context)
{
Config.Articles.ForEach(article => context.Articles.Add(article));
Config.Categories.ForEach(category => context.Articles.Add(category));
Config.CareerAreas.ForEach(careerArea => context.Articles.Add(careerArea));
context.SaveChanges();
}
}
公共类ArticleInitializer:DropCreateDatabaseAlways
{
受保护的覆盖无效种子(ArticleContext上下文)
{
Config.Articles.ForEach(article=>context.Articles.Add(article));
Config.Categories.ForEach(category=>context.Articles.Add(category));
Config.CareerAreas.ForEach(careerArea=>context.Articles.Add(careerArea));
SaveChanges();
}
}
Config.Articles、Config.Categories和Config.careerArea是否属于同一类型?因为它们都添加到同一个DbSet…?是的,它们都是同一类型的。另一个奇怪的是,我可以注释掉Config.Articles行,类别和职业领域就可以了。但关键是我的代码在EF4.3中运行良好,而不是在EF5.OK中。种子如何失败,有错误消息吗?还有一个想法,当我超过Seed()时,我从不调用SaveChanges(),我认为这是在调用方法(EF4.3)中完成的,我注释掉了context.SaveChanges()行。只要我的种子数据不超出模型的约束,这似乎就解决了问题。谢谢你的帮助Daniel.Config.Articles、Config.Categories和Config.CareerAreas都是同一类型的吗?因为它们都添加到同一个DbSet…?是的,它们都是同一类型的。另一个奇怪的是,我可以注释掉Config.Articles行,类别和职业领域就可以了。但关键是我的代码在EF4.3中运行良好,而不是在EF5.OK中。种子如何失败,有错误消息吗?还有一个想法,当我超过Seed()时,我从不调用SaveChanges(),我认为这是在调用方法(EF4.3)中完成的,我注释掉了context.SaveChanges()行。只要我的种子数据不超出模型的约束,这似乎就解决了问题。谢谢你的帮助,丹尼尔。