Some lines about EF Code First migration.
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.的更多相关文章
- EF Code First Migration总结
开启Migration 1. 通过 Tools->Nuget Package Manager->Package Manager Console 打开Package Manager Cons ...
- EF Code First学习系列
EF Model First在实际工作中基本用不到,前段时间学了一下,大概的了解一下.现在开始学习Code First这种方式.这也是在实际工作中用到最多的方式. 下面先给出一些目录: 1.什么是Co ...
- 【极力分享】[C#/.NET]Entity Framework(EF) Code First 多对多关系的实体增,删,改,查操作全程详细示例【转载自https://segmentfault.com/a/1190000004152660】
[C#/.NET]Entity Framework(EF) Code First 多对多关系的实体增,删,改,查操作全程详细示例 本文我们来学习一下在Entity Framework中使用Cont ...
- 1.什么是Code First(EF Code First 系列)
EF4.1中开始支持Code First .这种方式在领域设计模式中非常有用.使用Code First模式,你可以专注于领域设计,根据需要,为你一个领域的对象创建类集合,而不是首先来设计数据库,然后来 ...
- IoC容器Autofac - Autofac + Asp.net MVC + EF Code First(转载)
转载地址:http://www.cnblogs.com/JustRun1983/archive/2013/03/28/2981645.html 有修改 Autofac通过Controller默认构造 ...
- EF Code First 数据迁移配置
这里我想讲清楚code first 数据迁移的两种模式,还有开发环境和生产环境数据迁移的最佳实践. 1.1 数据迁移综述 EF Code first 虽然已经有了几种不同的数据库初始化策略,但是大部分 ...
- 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) ...
- Sqlite && EF Code FIRST 终极解决方案 2019.5.17
Sqlite && EF Code FIRST 终极解决方案 2019.5.17 包括根据模型自动生成数据库,初始化数据,模型改变时的自动数据迁移等 2019.12.25 更新 支持E ...
- 【Docker】 .Net Core 3.1 webapi 集成EF Code First,使用MySql进行业务操作 、配置swagger (三)
系列目录: [Docker] CentOS7 安装 Docker 及其使用方法 ( 一 ) [Docker] 使用Docker 在阿里云 Centos7 部署 MySQL 和 Redis (二) [D ...
随机推荐
- mysql -u root -p 解释
使用此命令首先确保你的mysql运行环境已经搭建好 这是客户端连接mysql服务器的指令,比较全的写法是下面两种 第一个是全拼,第二个是第一个的缩写 mysql --host=localhost -- ...
- 卸载Redhat 7自带的yum,安装并使用网易163源
由于redhat的yum在线更新是收费的,如果没有注册的话不能使用,如果要使用,需将redhat的yum卸载后,安装CentOS yum工具,再配置其他源,以下为详细过程:删除redhat原有的yum ...
- linux 的安装
3linux 软件安装 3.1 vm ware 软件安装 双击VMware-workstation-full-10.0.2-1744117.1398244508.exe 单击下一步 单击下一步 选择典 ...
- 学习pytho第五天 循环
age_of_Bob = 56#定义年龄 count = 0#头部计数 while True:#while循环 if count ==3:#如果次数==3: break#退出 guess_age = ...
- VMWare workstation Pro 14 For Linux key
VMWare workstation Pro 14 For Linux key: (我使用的Linux 系统是 Ubuntu16.04, 64位 ) 镜像是官方网址下载的,你也可以自己去官方网址下载: ...
- python代码notepad++不变色问题。
原来是文档后缀名是.txt造成的,应该改成.py,疏忽了...
- 策略模式—Java实现(转)
1. 现实需求 客户有了新的需求,这时我们直接新增策略即可,改很少的代码.基本符合我们面向对象原则中的开闭原则(对扩展开放,对修改关系),实现了高内聚低耦合. 2. 策略模式定义 策略模式,又叫算法簇 ...
- CCPC_1003
这个题可以暴力的哟,直接暴力的哟 不用做什么订立的哟 不需要特别判断的哟 去死吧!!!愚蠢的我! #include<bits/stdc++.h> using namespace std; ...
- loj2059 「TJOI / HEOI2016」字符串
字符串好难啊不会啊 #include <iostream> #include <cstdio> using namespace std; int n, m, rnk[10000 ...
- loj2045 「CQOI2016」密钥破解
CQOI 板子大赛之 pollard rho #include <iostream> #include <cstdio> using namespace std; typede ...