(此著作同时公布在本身微信公众号“dotNET每月朵华文章”,欢迎右侧二维码来关爱。)

题记:虽然EF七重新规划了Entity Framework,可是也仍是能够够支持数据迁移的。

Entity Framework
7是微软OCRUISERM框架的贰次重生,变得越来越轻量级。由此私下认可情状是从未有过拉开数据迁移(Migration)功效的,也即开立出来的数据库暗中认可不会含有“__MigrationHistory”表。在那种意况下,数据模型的变更,须求您手动(通过SQL脚本)去修改对应的数据库结构。当然,你要么得以启用自动的数额迁移效率的。

Mostafa
Asaduzzaman
在CodeProject上分享了一篇小说,图像和文字并茂的执教了怎么在Entity
Framework 七中开始展览多少迁移。差不离步骤如下:

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

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

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

   1: "commands": {

   2:        "ef":  "EntityFramework.Commands"

   3:   },

三,变更数据模型之后,在品种文件夹中进行如下命令来添加新的动员搬迁代码:

   1: dnx . ef migration add newBook

四,运维迁移代码:

   1: dnx . ef migration apply

更详细的内容,能够“阅读原作”。就本人本人的实践经验而言,有几点能够享受给我们:

  1. 今昔Migration的授命不是EF陆在此之前那样在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地图