Entity FrameWork初始化数据库的四种策略
来源:互联网 发布:生态安全调查数据库 编辑:程序博客网 时间:2024/05/22 04:36
程序猿就是苦逼,每天还得分出一些时间去写博文。天真的很热,今天就随便写一点啦!
1、EF初始化数据库的四中策略
EF可以根据项目中的模型自动创建数据库。下面我们就分类看看Entity Framework数据库初始化四种策略
一、 //每次运行都会创建新的数据库
Database.SetInitializer<XXXXXContext>(new DropCreateDatabaseAlways<XXXXXContext>());
二、//只有第一次运行~才会创建新的数据库~默认的方式
Database.SetInitializer<XXXXXContext>(new CreateDatabaseIfNotExists<XXXXXContext>());
三、 //修改模型后~运行~会创建新的数据库
Database.SetInitializer<XXXXXContext>(new DropCreateDatabaseIfModelChanges<XXXXXContext>());
四、//使用自己配置的数据库,请到:web.config中配置自己的连接字符串,注意连接字符串的名称应与上下文:XXXXContext的名字一致。
Database.SetInitializer<Models.musicStoreContext>(null);
注:以上代码请到Global.asax中加上,加上之后会有破浪线,请添加EF的命名空间:using System.Data.Entity;
实例代码如下:
protected void Application_Start()
{
//Entity Framework数据库初始化四种策略
//自己去配置连接字符串
Database.SetInitializer<Models.musicStoreContext>(null);
//默认方式 第一次创建
Database.SetInitializer<Models.musicStoreContext>(new CreateDatabaseIfNotExists<Models.musicStoreContext>());
//每一次都会删除旧数据库然后创建新的数据库
Database.SetInitializer<Models.musicStoreContext>(new DropCreateDatabaseAlways<Models.musicStoreContext>());
//模型关系改变时创建新数据库
Database.SetInitializer<Models.musicStoreContext>(new DropCreateDatabaseIfModelChanges<Models.musicStoreContext>()); AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
AuthConfig.RegisterAuth();
}
2、讲完了上述四中策略,下面就讲解一下EF的约定优先原则:
EF会尽可能的使用约定而非配置,如果在程序运行时,不按照上述四方法配置具体的数据库连接方式,EF将按照约定创建一个连接,也就是根据模型关系创建一个数据库。EF
创建新数据库的过程如下:
首先EF将尝试连接SQLserverExpress的本地实例,并且查找与上下文:XXXXContext名字相同的数据库,如果EF找不到这个数据库,EF则会根据约定创建一个数据库。
- Entity Framework数据库初始化四种策略
- Entity FrameWork初始化数据库的四种策略
- Entity FrameWork初始化数据库的四种策略
- Entity FrameWork初始化数据库的四种策略
- EF 数据库初始化 Database.SetInitializer Entity Framework数据库初始化四种策略
- Entity Framework(code first)数据库初始化
- entity framework 数据库默认时间的问题
- Entity Framework(2)数据库
- entity framework 数据库默认时间的问题的一种解决方案
- Entity Framework实现数据库表的温和修改
- Entity Framework - Func 引起的数据库全表查询
- Entity Framework访问数据库时出现的问题
- Entity Framework code first 手动修改数据库的问题
- entity framework的使用(自动生成数据库模型)
- Entity Framework无法将更改同步到数据库的问题
- 全自动迁移数据库的实现 (Fluent NHibernate, Entity Framework Core)
- Entity Framework 6 连接Sqlite数据库遇到的问题
- Entity Framework 4.1 之四:复杂类型
- Php面向对象 – 单例模式
- vmware10.0 下 基于centos6.5安装xen的问题
- 咳咳咳 可可
- date命令
- 支付宝接口程序、文档及解读(ASP.NET)
- Entity FrameWork初始化数据库的四种策略
- gcc 多源文件的编译方法
- POJ-2724-Purifying Machine
- sql语句的使用
- 今天的问题
- Javascript模块化编程(一):模块的写法
- 学习视频
- hdu 4968 Improving the GPA(dp)
- nyoj 12 喷水装置(二)【贪心】+【区间完全覆盖覆盖】