Some lines about EF Code First migration:

一. 模型设计
1. 遵循EF标准,注意表关系配对
2. 数据模型里尽量把必须的属性和说明都写全
3. EF默认id字段为主键,如果没有,需指定主键
二. 数据迁移 1. 命令运行环境:visual studio工具栏->工具->NuGet 程序包管理器->程序包管理器控制台 2. 基本命令和常用参数
> get-help 获取帮助的命令(例:get-help Enable-Migrations –detailed)
–detailed 详细用法
> Enable-Migrations 启用迁移
-Force 强制覆盖
-ProjectName 目标项目(迁移类所在的项目)
-StartUpProjectName 启动项目(包含数据库连接字符串配置文件所在的项目)
-ContextTypeName 需要迁移的数据库(类)
-ConnectionStringName 指定使用配置文件中连接字符串的名称
-ConnectionString 指定使用的连接字符串
-ConnectionProviderName 指定连接字符串的provider名称
> Add-Migration 为挂起的Model变化添加迁移脚本
-Force
-ProjectName
-StartUpProjectName
-ConfigurationTypeName 指定使用的迁移配置
-IgnoreChanges 忽略检测到挂起的model改变,为已有的数据库启用迁移创建一个初始的,空的迁移。
-ConnectionStringName
-ConnectionString
-ConnectionProviderName
> Update-Database 将挂起的迁移更新到数据库
-Force
-ProjectName
-StartProjectName
-ConfigurationTypeName
-ConnectionStringName
-ConnectionString
-ConnectionProviderName
-SourceMigration 只有-Script打开时才有效。指定迁移的名称用作更新的起点。忽略则使用最后一次应用的迁移。
-TargetMigration 指定将数据库更新到哪个迁移的名称。
-Script 生成SQL脚本
> Get-Migrations 获取已经应用的迁移
3. 迁移操作步骤举例: a. 第一次启用迁移,输入命令: Enable-Migrations -ProjectName DataBaseModel -StartUpProjectName MemberContext -ContextTypeName DataBaseModel.MemberContext.MemberEntities
并敲回车键,然后打开生成的Migrations文件夹中的Configuration.cs文件, 把构造方法中的AutomaticMigrationsEnabled = false;改为AutomaticMigrationsEnabled = true; b. 模型有改动时,输入命令:add-migration update20150508 -ProjectName DataBase -StartUpProjectName Member -Force并敲回车键,创建迁移脚本 然后 输入命令:Update-Database -Verbose -ProjectName DataBase -StartUpProjectName Member并敲回车键,执行迁移操作 4. 配置自动迁移 在应用程序的入口方法(函数)里注册自动迁移: Database.SetInitializer(new MigrateDatabaseToLatestVersion<OrderContext, Configuration>());
注意:Configuration.cs生成的是internal sealed class,如果不在启动程序集中,则需要修改成public 5. 脱离visual studio环境做数据库版本迁移,可用migrate.exe,可参考:http://msdn.microsoft.com/zh-cn/data/jj618307 三. 注意事项: 1. 连接字符串不用DBFirst自动生成的那么复杂,采用如下格式即可: <add name="MemberEntities" connectionString="server=.;database=Member;integrated security=true;" providerName="System.Data.SqlClient"/> 2. 有挂起的Model改变时,会导致操作不正常,注意操作步骤,必要时清理挂起的迁移。 EF应用CodeFirst模式,数据迁移的基本用法要点摘记

  

var logger = LoggerResolver.Current.Logger;
var dbContext = applicationContext.DatabaseContext;
var helper = new DatabaseSchemaHelper(dbContext.Database, logger, dbContext.SqlSyntax);
helper.CreateTable<Question>(true);
helper.CreateTable<Option>(true);

}

Some lines about EF Code First migration.的更多相关文章

  1. EF Code First Migration总结

    开启Migration 1. 通过 Tools->Nuget Package Manager->Package Manager Console 打开Package Manager Cons ...

  2. EF Code First学习系列

    EF Model First在实际工作中基本用不到,前段时间学了一下,大概的了解一下.现在开始学习Code First这种方式.这也是在实际工作中用到最多的方式. 下面先给出一些目录: 1.什么是Co ...

  3. 【极力分享】[C#/.NET]Entity Framework(EF) Code First 多对多关系的实体增,删,改,查操作全程详细示例【转载自https://segmentfault.com/a/1190000004152660】

      [C#/.NET]Entity Framework(EF) Code First 多对多关系的实体增,删,改,查操作全程详细示例 本文我们来学习一下在Entity Framework中使用Cont ...

  4. 1.什么是Code First(EF Code First 系列)

    EF4.1中开始支持Code First .这种方式在领域设计模式中非常有用.使用Code First模式,你可以专注于领域设计,根据需要,为你一个领域的对象创建类集合,而不是首先来设计数据库,然后来 ...

  5. IoC容器Autofac - Autofac + Asp.net MVC + EF Code First(转载)

    转载地址:http://www.cnblogs.com/JustRun1983/archive/2013/03/28/2981645.html  有修改 Autofac通过Controller默认构造 ...

  6. EF Code First 数据迁移配置

    这里我想讲清楚code first 数据迁移的两种模式,还有开发环境和生产环境数据迁移的最佳实践. 1.1 数据迁移综述 EF Code first 虽然已经有了几种不同的数据库初始化策略,但是大部分 ...

  7. Inheritance with EF Code First: Part 3 – Table per Concrete Type (TPC)

    Inheritance with EF Code First: Part 3 – Table per Concrete Type (TPC) This is the third (and last) ...

  8. Sqlite && EF Code FIRST 终极解决方案 2019.5.17

    Sqlite && EF Code FIRST 终极解决方案 2019.5.17 包括根据模型自动生成数据库,初始化数据,模型改变时的自动数据迁移等 2019.12.25 更新 支持E ...

  9. 【Docker】 .Net Core 3.1 webapi 集成EF Code First,使用MySql进行业务操作 、配置swagger (三)

    系列目录: [Docker] CentOS7 安装 Docker 及其使用方法 ( 一 ) [Docker] 使用Docker 在阿里云 Centos7 部署 MySQL 和 Redis (二) [D ...

随机推荐

  1. centos7.4安装rabbitmq服务(3.7.10版本)

    一.需要安装erlang版本依赖,可以使用二进制安装方式,也可以通过rpm安装,但是安装的时候会提示需要erlang版本>=19.3,而且直接默认yum仓库中的版本较低.,为了节省时间,文章中直 ...

  2. 本地已经存在的项目如何跟github发生关联

    切换到本地项目地址 git init 初始化项目.该步骤会创建一个 .git文件夹是附属于该仓库的工作树. git add . git commit -am 'initial commit' git ...

  3. OpenFaceswap 入门教程(1):软件安装篇

    ---恢复内容开始--- 众多换脸软件中,DeepFaceLab其实是安装和使用最方便,更新最快的,但是由于其没有可是化界面,对于很新手来说,可能入门还是有点难度.那么今天就来介绍一款操作极其直观和简 ...

  4. Python知识点入门笔记——特色数据类型(集合)

    集合是一种不重复的无序集 集合用花括号来定义{} 集合和字典一样,里面的顺序是无序的,{1,2,3}和{3,2,1}是相等的 集合的元素不可重复,也就是说{1,2,2,3}是不存在的,应该写为{1,2 ...

  5. mysql-copy to tmp table

    今天数据后台数据反映有些迟缓后查看链接 processlist 发下好多 锁 和磁盘写入,   参考文章 : http://bbs.chinaunix.net/forum.php?mod=viewth ...

  6. FreeMarker的<#if></#if>标签

    <#if target??> xxxx </#if> 上面这段代码判断target??是否为null,如果不为null时才可以执行if里面的内容,为null时则不进到 if里面 ...

  7. Diycode开源项目 UserActivity分析

    1.效果预览 1.1.实际界面预览 1.2. 这是MainActivity中的代码 这里执行了跳转到自己的用户界面的功能. 1.3.点击头像或者用户名跳转到别人的页面 UserActivity的结构由 ...

  8. OpenCV学习笔记(五) 文件存取

    转自输入输出XML和YAML文件 To be filled

  9. 如何拿到半数面试公司Offer——我的Python求职之路(转)

    从八月底开始找工作,短短的一星期多一些,面试了9家公司,拿到5份Offer,可能是因为我所面试的公司都是些创业性的公司吧,不过还是感触良多,因为学习Python的时间还很短,没想到还算比较容易的找到了 ...

  10. 当我们在讨论CQRS时,我们在讨论些神马?

    当我写下这个标题的时候,我就有些后悔了,题目有点大,不太好控制.但我还是打算尝试一下,通过这篇内容来说清楚CQRS模式,以及和这个模式关联的其它东西.希望我能说得清楚,你能看得明白,如果觉得不错,右下 ...