使用EntityFramework Code First开发,数据迁移是一个不得不提的技术. 在我们的开发过程中,难免需要对模型进行改进,模型改进后,会导致实体集与数据库不一致,当然我们可以通过删除数据库然后再重构数据库,但是在生产环境中这样做,这样或多或少会出现一些问题.使用"数据迁移",可以帮助我们解决这个问题. 数据迁移,添加的是我们对数据库的改动,这一点可以从下面Demo中可以看出来.每对数据库进行一次改动(如删除了某个表,更改了某一列),添加一次数据迁移,然后更新数据库,这样…
EF Code First数据库映射规则主要包括以下方面: 1.表名及所有者映射 Data Annotation: 指定表名 1 using System.ComponentModel.DataAnnotations;2 3 [Table("Product")]4 public class Product指定表名及用户 using System.ComponentModel.DataAnnotations;[Table("Product", Schema = &qu…
在使用 EF Code First 的时候,我们经常会对项目中的 Entry 进行一对多.多对多的映射配置,这时候就会产生主实体和子实体的概念,我们在添加.修改他们的时候,有时候会产生一些问题,比如添加主实体的时候,我们不想添加子实体,看一个 User-Role 场景: public class User { public int Id { get; set; } public string Name { get; set; } public string Age { get; set; } p…
1.EF Code First创建数据库 新建控制台应用程序Portal,通过程序包管理器控制台添加EntityFramework. 在程序包管理器控制台中执行以下语句,安装EntityFramework. PM> Install-Package EntityFramework 安装成功后,界面提示如下图:   在新建的Portal控制台应用程序中添加两个实体类,代码结构如下: 其中,类文件PortalContext.cs的代码如下: using System; using System.Col…
1. 为了演示方便,首先新建一个控制台项目,然后添加对entityframework的引用 使用nuget控制台执行: Install-Package EntityFramework 2.新建一个实体"Student",数据访问类"StudentsContext",代码如下: public class Student { public int Id { get; set; } public string Name { get; set; } } public cla…
前段时间听过一个关于使用ASP.NET Core建立项目的视频.其中使用EF Core映射到数据库的部分是按部就班地学习.今天自己建立项目时,有些步骤已经有一些遗忘.所以写下这篇文章,顺便理清思路. 新建项目后: 1.Models文件夹下建立实体类,如User public class User { public int Id { get; set; } public int Account { get; set; } public int Password { get; set; } } 2.…
在项目过程中,两个实体数据之间在往往并非完全独立的,而是存在一定的关联关系,如一对一.一对多及多对多等关联.存在关联关系的实体,经常根据一个实体的实例来查询获取与之关联的另外实体的实例. Entity Framework常用处理数据关联加载的方式有3种:延迟加载(Lazy Loading).贪婪加载(Eager Loading)以及显示加载(Explicit Loading). 1.延迟加载(Lazy Loading) 延迟加载是项目应用中常见的方式,Entity Framework在需要时可以…
1,打开工具->NuGet程序管理器->程序包管理器控制台 默认项目中要选择  数据访问上下文类  所在的项目 我的DB是在命名空间CodeFirst.UI下的所以选择CodeFirst.UI 然后执行Enable-Migrations 如果失败,有一种错误是会提醒你未安装XXXX或者缺少XXXX(遇到过一次,错误信息未保留,下次有机会补充), 需要安装 (不知道是什么鬼东西): 去官网上下载安装可以了http://www.microsoft.com/zh-cn/download/detail…
要在nuget 程序包管理控制台中输入命令 基本命令 Enable-Migrations   //打开数据库迁移 Add-Migration AddBlogUrl    //新增一个数据库迁移版本   AddBlogUrl是要新增版本名称,这个名称必须是唯一的,不能重复 Update-Database  //更新数据库 Update-Database –TargetMigration: 版本名称  //迁移到特定版本(回滚) 详细内容请看:http://www.cnblogs.com/inday…
迁移到特定版本(包括降级) 到目前为止,我们一直升级到最新的迁移,但有时您可能需要升级/降级到特定的迁移. 这是目前我数据库中的表:有四个表,我降级到addEndTime这个版本(这个版本是没有grade表的,我刚测试又通过代码优先迁移添加了一个grade表).          第一步:Update-Database -TargetMigration:AddEndTime 看到grade表已经不见了. 参考地址:https://msdn.microsoft.com/en-us/data/jj5…