【发布时间】:2011-08-16 22:39:21
【问题描述】:
我正在尝试在没有现有数据库的情况下首先使用实体框架代码。
我的一切设置都很好,它正在创建数据库。
我想做的是 SetInitializer Strategy,这样我就可以播种一些测试数据。
我是按照这里的例子来的:
所以我添加了一个这样的初始化器:
public class MyInitializer : DropCreateDatabaseIfModelChanges<MyContext>
{
protected override void Seed(MyContext context)
{
var students = new List<Student>
{
new Student { FirstMidName = "Carson", LastName = "Alexander", EnrollmentDate = DateTime.Parse("2005-09-01") },
new Student { FirstMidName = "Meredith", LastName = "Alonso", EnrollmentDate = DateTime.Parse("2002-09-01") },
new Student { FirstMidName = "Arturo", LastName = "Anand", EnrollmentDate = DateTime.Parse("2003-09-01") },
new Student { FirstMidName = "Gytis", LastName = "Barzdukas", EnrollmentDate = DateTime.Parse("2002-09-01") },
new Student { FirstMidName = "Yan", LastName = "Li", EnrollmentDate = DateTime.Parse("2002-09-01") },
new Student { FirstMidName = "Peggy", LastName = "Justice", EnrollmentDate = DateTime.Parse("2001-09-01") },
new Student { FirstMidName = "Laura", LastName = "Norman", EnrollmentDate = DateTime.Parse("2003-09-01") },
new Student { FirstMidName = "Nino", LastName = "Olivetto", EnrollmentDate = DateTime.Parse("2005-09-01") }
};
students.ForEach(s => context.Students.Add(s));
context.SaveChanges();
}
}
然后我补充说:
Database.SetInitializer<MyContext>(new MyInitializer());
到Global.ascx 文件的Application_Start 并运行该站点。我得到了:
无法检查模型兼容性,因为模型中未包含 EdmMetadata 类型。确保已将 IncludeMetadataConvention 添加到 DbModelBuilder 约定中。
然后我在 DataContext 中发现我有类似的东西:
protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
modelBuilder.Conventions
.Remove<System.Data.Entity.Infrastructure.IncludeMetadataConvention>();
}
所以我认为我发现了我将其更改为的问题:
protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
//modelBuilder.Conventions
//.Remove<System.Data.Entity.Infrastructure.IncludeMetadataConvention>();
}
但是我仍然遇到同样的错误。有什么想法吗?
编辑更新:
我刚刚看了看,发现 EdmMetadata 表没有被填充
【问题讨论】:
标签: entity-framework entity-framework-4