设为首页 加入收藏

TOP

6.翻译系列:EF 6 Code-First中数据库初始化策略(EF 6 Code-First系列)(一)
2019-09-17 18:57:25 】 浏览:79
Tags:翻译 系列 Code-First 数据库 初始 策略

       原文链接:http://www.entityframeworktutorial.net/code-first/database-initialization-strategy-in-code-first.aspx

 

EF 6 Code-First系列文章目录:

 

   

   当你第一次运行Code-First应用程序的时候,EF就会为我们创建数据库,但是,后面呢,第二次第三次..的时候会是什么情况?是不是每次运行程序的时候,都会创建一个新的数据库?生产环境中会是什么情况?当你改变你的领域模型的时候,你怎么修改数据库呢?为了解决这些情况,你需要来使用数据库初始化策略。

       EF 6中,有四种不同的数据库初始化策略:

  1. CreateDatabaseIfNotExists:这是默认的数据库初始化策略。就像它的名称那样,如果根据配置,数据库不存在的话,就会创建数据库。但是如果你改变模型类,使用这个策略,再运行程序的话,就会抛出一个异常。
  2. DropCreateDatabaseIfModelChanges:这个策略会在你的模型发生改变的时候,删除已经存在的数据库,然后创建一个新的数据库。所以当你模型改变的时候,不必担心怎么来维护数据库对象模式。
  3. DropCreateDatabaseAlways:就像其名称所示,这个策略每次你运行程序的时候,都会删除以及存在的数据库,而不管你的模型类 是否发生改变。这个策略非常有用,当你每次运行程序,都想要一个新的数据库的时候。例如:当你在开发程序的时候。使用这个策略比较好。
  4. Custom DB Initializer: 如果上面的策略不满足你的需求或者数据库初始化的时候,你想额外做一些其他的处理的时候, 你就可以创建你自己的数据库初始化策略。

为了使用上面提到的4个数据库初始化策略,你可以在上下文类中,使用Database类,例如下面代码:

你如果想使用自定义的数据库初始化策略,就可以继承上面三个中的其中一个策略,例如:

在上面的代码中,SchoolDBInitiallizer就是一个自定义的数据库初始化策略类,它继承自CreateDatabaseIfNotExists。这种做法,将初始化策略代码从上下文类中分离开来了。

 在配置文件中创建

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇DS控件库 一个简单的血条颜色渐变.. 下一篇C#通过字符串名称来调用对应字符..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目