(此文章同时发表在我微信公众号“dotNET每日精华文章”,欢迎右边二维码来关心。)

题记:虽然EF7重复规划了Entity Framework,不过也要会支持数据迁移的。

Entity Framework
7凡是微软ORM框架的等同次重生,变得更为轻量级。因而默认情况是绝非开启数据迁移(Migration)功能的,也不怕创办出来的数据库默认不会见含有“__MigrationHistory”表。在这种状况下,数据模型的改变,需要而手动(通过SQL脚本)去修改对应的数据库结构。当然,你还是得以启用自动的多寡迁移功能的。

Mostafa
Asaduzzaman在CodeProject上分享了一致篇文章,图文并茂的上课了什么当Entity
Framework 7中开展多少迁移。大致步骤如下:

1,在project.json中引用EntityFramework.Commands包

   1: "EntityFramework.Commands": "7.0.0-beta4"

2,在project.json中添加“ef”的命令:

   1: "commands": {

   2:        "ef":  "EntityFramework.Commands"

   3:   },

3,变更数据模型之后,在路文件夹着执如下命令来补充加新的迁移代码:

   1: dnx . ef migration add newBook

4,运行迁移代码:

   1: dnx . ef migration apply

重详实的始末,可以“阅读原文”。就自己好的实践经验而言,有几接触得分享给大家:

  1. 今天Migration的一声令下不是EF6之前那样在Package Manager
    Console中运作了,而是在dnx命令下运行
  2. 万一dnx命令无效,那么可能是没实行“dnvm use”
  3. 设前从未启用Migration,最好打算开搬迁之前实施同一次“dnx . ef
    migration add InitialCreate”来补加一个接近事先的起来迁移
  4. 争不思通过命令来以迁移或者说眷恋当代码中活动应用迁移,那么可创造如下这样的艺术,在Startup中的Configure方法被调用

    1: public static void Init(IServiceProvider serviceProvider)

    2: {

    3: using (var db = serviceProvider.GetService())

    4: {

    5: var sqlDb = db.Database as SqlServerDatabase;

    6: if (sqlDb != null)

    7: {

    8: try

    9: {

    10: sqlDb.ApplyMigrations();

    11: }

    12: catch (Exception ex)

    13: {

    14: Trace.TraceError(ex.Message);

    15: throw;

    16: }

    17: }

    18: }

    19: }

原稿链接:http://www.codeproject.com/Tips/988763/Database-Migration-in-Entity-Framework

相关文章

网站地图xml地图