EF6 OnModelCreating()事件没有

雷扎

我将继续阅读有关EF6和Codefirst的本教程。http://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net- mvc应用

我开始一个解决方案,只是添加了模型,上下文和初始化程序

namespace TestContoso.DAL
{
    public class SchoolContext : DbContext
    {
        public SchoolContext()
            : base("Name=SchoolContextDB")
        {

        }

        public DbSet<Student> Students { get; set; }
        public DbSet<Enrollment> Enrollments { get; set; }
        public DbSet<Course> Courses { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
        }
    }
}

并创建了一个虚拟的Home Controller和Index视图。

namespace TestContoso.Controllers
    {
        public class HomeController : Controller
        {
            private SchoolContext db = new SchoolContext();
            //
            // GET: /Home/
            public ActionResult Index()
            {
                return View();
            }
        }
    }

我还设置了连接字符串,并在web.config中设置了初始化程序

  <entityFramework>
    <contexts>
      <context type="TestContoso.DAL.SchoolContext, TestContoso">
        <databaseInitializer type="TestContoso.DAL.SchoolInit, TestContoso"/>
      </context>
    </contexts>

当我运行该解决方案时,我期望数据库将被创建,但是我注意到OnModelCreating事件从不触发,因此从不创建该数据库。为什么不创建数据库?我将如何引发“代码优先”迁移?

雷扎

仅当有一些查询该模型的查询时才触发OnModelCreating事件,以测试我是否刚刚在Index控制器中添加了一个伪查询,并且它起作用。

    public class HomeController : Controller
    {
        private SchoolContext db = new SchoolContext();
        //
        // GET: /Home/
        public ActionResult Index()
        {
            var students = from s in db.Students
                               select s;

            return View();
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

实体类型没有定义键EF6

来自分类Dev

带有EF6的IdentityServer4

来自分类Dev

EF6忽略(NotMapped)所有枚举类型属性

来自分类Dev

带有代码优先EF6的多租户

来自分类Dev

拦截所有EF6 Linq查询

来自分类Dev

具有EF6和MS身份的示例项目

来自分类Dev

删除与EF6有多对多关系的实体记录

来自分类Dev

带有代码优先EF6的多租户

来自分类Dev

删除与EF6有多对多关系的实体记录

来自分类Dev

通过现有迁移从EF5迁移到EF6

来自分类Dev

具有迁移功能的ASP.NET MVC 6 + EF6

来自分类Dev

有谁知道EF6和AutoMapper进行枚举转换的过程

来自分类Dev

EF6中的多对多关系是否需要定义映射表并具有主键?

来自分类Dev

使用EF6和SQL Server 2012时,参考表有替代方法吗?

来自分类Dev

在EF6中为所有表名添加前缀

来自分类Dev

ef6 include()用于具有必需属性的可空属性

来自分类Dev

无法使用现有的DBConfiguration重新设置EF6中的DatabaseInitializer

来自分类Dev

Visual Studio 2013中带有EF6的MySQL连接器

来自分类Dev

带有EF6运行时异常的实体框架'指定的成员映射无效'

来自分类Dev

EF6中的多租户,其中多个模式具有相同的表

来自分类Dev

带有Max和过滤器的EF6查询

来自分类Dev

无法使SQLite在带有EF6的VS2019中工作

来自分类Dev

当我用EF6查询数据库时,使用LINQ有什么优势?

来自分类Dev

使用EF6和SQL Server 2012时,参考表有替代方法吗?

来自分类Dev

EF6无法删除/更新-ObjectStateManager中已经存在具有相同键的对象

来自分类Dev

带有EF6的IBM错误SQL0417N

来自分类Dev

具有相同实体的2个属性时的EF6代码优先混淆

来自分类Dev

带有EF6的自动映射器投影和LINQ查询

来自分类Dev

带有Max和过滤器的EF6查询

Related 相关文章

热门标签

归档