代码优先:仅在执行某些代码后才创建数据库?

2024-03-23

我想先使用代码创建一个数据库。 我的数据库始终处于“DropCreateDatabaseAlways”模式。

我注意到,如果我不尝试对数据库执行一些查询,例如

using (var db = new Models.TnHContext())
        {
            var query = from u in db.Users
                        select u;
            foreach (var u in query)
            {
                txt += u.UserID + "<br/>";
            }
        }

不会创建数据库。除非我执行它,否则只有我才能看到创建的数据库。想知道这是否是由于 EntityFramework 设计/默认行为造成的?


The 数据库初始化器 http://msdn.microsoft.com/en-us/library/gg696323%28v=vs.103%29.aspx当您对上下文执行查询时调用,检索ObjectContext http://msdn.microsoft.com/en-us/library/system.data.objects.objectcontext.aspx来自DbContext http://msdn.microsoft.com/en-us/library/system.data.entity.dbcontext%28v=vs.103%29.aspx,或致电the Database.Initialize method http://msdn.microsoft.com/en-us/library/system.data.entity.database.initialize%28v=vs.103%29.aspx.

因此,如果您想立即创建数据库而不执行查询,您应该使用:

context.Database.Initialize(false);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

代码优先:仅在执行某些代码后才创建数据库? 的相关文章

随机推荐