博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库的初始化与控制
阅读量:4107 次
发布时间:2019-05-25

本文共 920 字,大约阅读时间需要 3 分钟。

初始化包括两个主要步骤。首先,使用Code First在内存中根据默认规则和配置创建模型。其次,使用已设置的数据库初始化器将用于存储数据的数据库初始化。

初始化是延迟加载的,所以创建一个实例的是不完全满足初始化发生的条件的。必须执行对模型的操作,如查询或添加实体才会发生。

但我们可以可以调用DbContext.Database.Initialize方法,在没有对模型执行任何操作的时候强制初始化。

有三个方法可以控制数据库初始化时的行为。

1 CreateDatabaseIfNotExists

CreateDatabaseIfNotExists方法会在没有数据库时创建一个,这是默认行为。

                Database.SetInitializer(

                    new CreateDatabaseIfNotExists<BreakAwayContext>());
                using (var context = new BreakAwayContext())
                {
                    context.Database.Initialize(true);
                }
2 DropCreateDatabaseIfModelChanges

如果我们在在模型改变时,自动重新创建一个新的数据库,就可以用这个方法。在这开发过程中非常有用。

                Database.SetInitializer(

                    new DropCreateDatabaseIfModelChanges<BreakAwayContext>());
                using (var context = new BreakAwayContext())
                {
                    context.Database.Initialize(true);
                }
3 DropCreateDatabaseAlways

如果你想在每次运行时都重新生成就可以用这个方法。

                Database.SetInitializer(

                    new DropCreateDatabaseAlways<BreakAwayContext>());
                using (var context = new BreakAwayContext())
                {
                    context.Database.Initialize(true);
                }

转载地址:http://tztsi.baihongyu.com/

你可能感兴趣的文章
C++总结8——shared_ptr和weak_ptr智能指针
查看>>
c++写时拷贝1
查看>>
C++ 写时拷贝 2
查看>>
Linux网络编程---I/O复用模型之poll
查看>>
Java NIO详解
查看>>
Statement与PreparedStatement区别
查看>>
Tomcat配置数据源步骤以及使用JNDI
查看>>
before start of result set 是什么错误
查看>>
(正则表达式)表单验证
查看>>
在JS中 onclick="save();return false;"return false是
查看>>
内容里面带标签,在HTML显示问题,JSTL
查看>>
VS编译器运行后闪退,处理方法
查看>>
用div+css做下拉菜单,当鼠标移向2级菜单时,为什么1级菜单的a:hover背景色就不管用了?
查看>>
idea 有时提示找不到类或者符号
查看>>
ng-class的几种用法
查看>>
node入门demo-Ajax让前端angularjs/jquery与后台node.js交互,技术支持:mysql+html+angularjs/jquery
查看>>
神经网络--单层感知器
查看>>
注册表修改DOS的编码页为utf-8
查看>>
matplotlib.pyplot.plot()参数详解
查看>>
拉格朗日对偶问题详解
查看>>