Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework SetInitializer传递策略时出现实体框架错误_Entity Framework_Entity Framework 4 - Fatal编程技术网

Entity framework SetInitializer传递策略时出现实体框架错误

Entity framework SetInitializer传递策略时出现实体框架错误,entity-framework,entity-framework-4,Entity Framework,Entity Framework 4,我试图在没有现有数据库的情况下首先使用实体框架代码 我把一切都设置好了,它正在创建数据库 我想做的是设置初始值设定策略,这样我就可以播种一些测试数据 我在这里举了一个例子: 所以我添加了一个初始值设定项,如下所示: public class MyInitializer : DropCreateDatabaseIfModelChanges<MyContext> { protected override void Seed(MyContext context)

我试图在没有现有数据库的情况下首先使用实体框架代码

我把一切都设置好了,它正在创建数据库

我想做的是设置初始值设定策略,这样我就可以播种一些测试数据

我在这里举了一个例子:

所以我添加了一个初始值设定项,如下所示:

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();  
        }
    }
因此,我认为我发现了问题,我将其改为:

protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
            //modelBuilder.Conventions
            //.Remove<System.Data.Entity.Infrastructure.IncludeMetadataConvention>();
        }
protectedoverride void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove();
//modelBuilder.Conventions
//.Remove();
}
然而,我仍然得到相同的错误。有什么想法吗

编辑更新:


我刚看了一下,注意到没有填充EdmMetadata表

删除数据库并尝试再次运行应用程序。

我遇到了同样的问题,解决方案是删除数据库并再次运行应用程序。谢谢
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>();
        }