DBFirst-------------------
Scaffold-DbContext "Data Source=xxx; Initial Catalog=xxx; User ID=xxx; Password=xxx;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
CodeFrist----------------
1,产生迁移的脚本
Add-Migration init
2,更新数据库
Update-Database
3,产生数据库脚本
Script-Migration
或者 script-migration [From] [To]
//---------------------以下是.Net Framework-----------
一. 模型设计
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名称
-MigrationsDirectory 指定迁移文件的目录(多个数据库,独立自动迁移用)
> 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. 迁移操作步骤举例:
DataBase :解决方案中,数据模型层项目名称
Member :解决方案中,启动项的名称
DataBase.Member.MemberEntities :需要应用数据迁移的数据上下文
a. 第一次启用迁移,输入命令:
Enable-Migrations -ProjectName DataBase -StartUpProjectName Member -ContextTypeName DataBase.Member.MemberEntities
并敲回车键,然后打开生成的Migrations文件夹中的Configuration.cs文件,
把构造方法中的AutomaticMigrationsEnabled = false;改为AutomaticMigrationsEnabled = true;
如果有多个数据库,每个库需要独立指定迁移文件,命令格式如下:
Enable-Migrations -ProjectName DataBase -StartUpProjectName Member -ContextTypeName DataBase.Member.MemberEntities -MigrationsDirectory:MemberMigrations
b. 模型有改动时,输入命令:add-migration update20150508 -ProjectName DataBase -StartUpProjectName Member -Force并敲回车键,创建迁移脚本
然后 输入命令:Update-Database -Verbose -ProjectName DataBase -StartUpProjectName Member并敲回车键,执行迁移操作
4. 配置自动迁移
在应用程序的入口方法(函数)里注册自动迁移:
Database.SetInitializer(new MigrateDatabaseToLatestVersion<DataBase.Member.MemberEntities, DataBase.MemberMigrations.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改变时,会导致操作不正常,注意操作步骤,必要时清理挂起的迁移。
3. 修正后数据库,里面的数据如果需要调整,用Configuration.cs文件里的Seed方法,示例如下:
protected override void Seed(DataBase.Member.MemberEntities context)
{
var users = new List<User>
{
new User { Account = "test", Password = "123" },
new User { Account = "admin", Password = "456" }
};
users.ForEach(s => context.Users.AddOrUpdate(p => p.Account, s));
context.SaveChanges();
}
分享到:
相关推荐
EntityFrameworkCore(简称EF Core)是微软推出的一款轻量级的对象关系映射(Object/Relational Mapping,简称ORM)框架,它是EntityFramework(简称EF)的跨平台版本,用于.NET平台。EF Core是.NET Core的一部分,...
ASP.NET Core和Entity Framework Core(简称EF Core)是Microsoft开发的两个关键的...通过阅读"ASP.NET Core 2.2.pdf"和"EFCore.pdf",你可以深入了解这两个框架的详细用法和最佳实践,进一步提升你的.NET开发能力。
.Net Core3.1 + EF Core + LayUI 封装的MVC版后台管理系统 .Net Core3.1 + EF Core + LayUI 封装的MVC版后台管理系统 .Net Core3.1 + EF Core + LayUI 封装的MVC版后台管理系统 .Net Core3.1 + EF Core + LayUI ...
标题中的"EFCore3.1 EF连接达梦8数据库例子"揭示了这个压缩包内容是关于Entity Framework Core 3.1版本与达梦8数据库之间的连接示例。Entity Framework Core (EF Core) 是一个轻量级、高性能的对象关系映射(ORM)...
在.NET开发领域,Entity Framework (EF) Core 和 Dapper 是两种常见的ORM(对象关系映射)工具。EF Core 提供了一种高级的、全面的ORM框架,而Dapper则是一个轻量级、高效的数据库访问库。这篇教程将探讨如何将这...
在.NET Core应用中,Entity Framework Core (EF Core) 是一个轻量级、高性能的对象关系映射(ORM)框架,它允许开发者用C#等语言直接操作数据库。依赖注入(Dependency Injection, DI)是一种设计模式,它有助于降低...
在本项目中,"EFCore+WebApi增删改查"是一个使用Entity Framework Core(简称EFCore)和Web API技术构建的.NET应用示例。这个框架主要用于演示如何通过Web服务接口进行数据操作,如添加、删除、修改和查询,前端展示...
EF Core是一种适用于.NET开发的数据库ORM(对象关系映射)工具,由Entity Framework团队开发。它为.NET开发人员提供了一种处理数据库的方式,减少了大量的数据访问代码编写。EF Core与早期版本的EF6相比,引入了新的...
在.NET Core开发中,Entity Framework Core (EFCore) 是一个常用的对象关系映射框架,它允许开发者使用C#代码操作数据库。在这个场景中,我们关注的是如何使用EFCore查询不重复的数据并根据特定字段进行排序。`...
《深入理解Z.EntityFramework.Extensions.EFCore6.13.1:多版本支持与BulkInsert功能》 Z.EntityFramework.Extensions是一款针对Entity Framework Core(简称EF Core)的扩展库,它提供了丰富的功能,增强了数据库...
《深入理解VS 2019与EF Core Power Tools v2.5.790.vsix》 在软件开发的世界中,Visual Studio (VS) 2019 是一款广泛使用的集成开发环境(IDE),它提供了丰富的功能和工具,帮助开发者高效地构建各种应用程序。而 ...
### EF Core 简介 Entity Framework Core(简称EF Core)是一个轻量级、可扩展、跨平台的.NET对象关系映射器(ORM)。EF Core 支持多种数据库提供者,并且可以用于.NET Core以及.NET Framework项目。它提供了数据访问...
"ASP.NET编程知识:C#中efcore-ShardingCore呈现“完美”分表" 本文档主要讲述了如何使用efcore-ShardingCore框架实现“完美”的分表功能。在C#中,efcore-ShardingCore框架提供了强大的分表功能,可以满足各种复杂...
1.实现EFcore连接本地Mysql数据库 2.最新版本的ASP.NET.CORE.Web API 3.实现dbfrist和code 。 4.博客链接:https://blog.csdn.net/EAyayaya/article/details/124048491 5. 不是MVC方式 6.Entity Framework Core ...
Entity Framework Core(简称 EFCore)是Microsoft开发的一个流行的.NET对象关系映射(ORM)框架,它是Entity Framework(EF)的跨平台替代品,旨在为.NET应用提供数据库访问能力。EFCore的设计旨在提供一个轻量级、...
在本课程中,我们将深入探讨如何使用C#编程语言与.NET 6框架,结合Entity Framework Core(简称EF Core)和MySQL数据库进行开发。这是一套完整的教程,旨在帮助初学者和有一定经验的开发者掌握现代Web应用程序开发的...
标题"EF Core 官方指南.pdf"指出这是一份关于Entity Framework Core(简称EF Core)的官方指南,以PDF格式呈现。EF Core是Microsoft开发的一个开源对象关系映射(ORM)框架,用于.NET应用程序,它允许开发者使用面向...
**EF Core**(Entity Framework Core)是由微软开发并维护的一款开源ORM框架,它是Entity Framework的轻量化和模块化版本,适用于.NET Core和.NET Framework。EF Core的核心特性包括: 1. **模型第一/代码第一**:...
Entity Framework Core (EF Core) 是微软提供的一种对象关系映射(ORM)框架,适用于.NET Core应用程序。它允许开发者用.NET类和对象来操作数据库,而无需直接编写SQL语句。EF Core支持多种数据库系统,包括SQL ...