Entity Framework Core 是一个ORM,所谓ORM也是ef的一个框架之一吧,简单的说就是把C#一个类,映射到数据库的一个表,把类里面的属性映射到表中的字段。然后Entity Framework Core3.1 是一个长期支持的版本。本人非常乐意对.NET社区繁荣奉献自己的青春。希望国内以后能够有越来越多的.NET程序员。

创建了一个.NET Standard类库。

可以编辑文件查看netStandard版本号,我这里是一个2.0版本。

顺便简单的说一下netStandard吧,实际上它应该就是一个开源库,不管是.NET Core还是EntityFramework都可以引用它。就是一个底层类库,并且该类库可以在不同的平台运行,ios、mac、linux等。一处编写多处运行,而且它还是开源的。当然这里你可以把它改成2.1的版本。

右键项目属性

这样就该好了。。。

然后又创建了一个类库,操作和上面一样,另一个是创建一个控制台应用,这个控制台应用是.NET Core应用的,版本应该是netcoreapp3.1,可以看看

以上准备工作完成后,就开始进行第一步操作,生成数据库!

在Demo.Main类库中创建所需要的类

这里我就简单的举个栗子。一个联赛类,一个是俱乐部类,一个是球员类,分别是一对多的关系。

namespace Demo.Main
{
/// <summary>
/// 联赛
/// </summary>
public class League
{
public int Id { get; set; }
public string Name { get; set; }
public string Country { get; set; }
}
}
using System;
using System.Collections.Generic; namespace Demo.Main
{
/// <summary>
/// 俱乐部
/// </summary>
public class Club
{
public Club()
{
Players=new List<Player>();//以防出现空指针引用
}
public int Id { get; set; }
public string Name { get; set; }
public string City { get; set; }
/// <summary>
/// 俱乐部成立日期
/// </summary>
public DateTime Establishment { get; set; }
public string History { get; set; }
/// <summary>
/// 联赛导航属性
/// </summary>
public League League { get; set; }
/// <summary>
/// 一对多,一个俱乐部有多个球员
/// </summary>
public List<Player> Players { get; set; }
}
}
using System;

namespace Demo.Main
{
/// <summary>
/// 球员
/// </summary>
public class Player
{
public int Id { get; set; }
public string Name { get; set; }
/// <summary>
/// 球员出生日期
/// </summary>
public DateTime DateOfBirth { get; set; }
}
}

然后就是在Data中引用Main的项目库

对Data类库安装对数据库操作的相关依赖,也就是方便对Model映射到数据库。显而易见,Data类库就是操作对Model映射到数据的Code first数据库迁移操作的。

所以必然是少不了上下文类的编写和操作了。

接下来就是准备迁移操作了,但是对于Demo.Data类库来说它是一个底层的类库,所以我们就得通过Demo.App一个控制台应用来去生成数据库,然后就要通过NuGet包进行一个引用了。

需要对数据库操作进行可执行文件的操作需要引用一下依赖吧可以说是

这个就装在Demo.Data项目中

这里就可以看到它为什么对数据库迁移起到作用了

点击下载即可,而后才能执行数据库迁移操作

记得在迁移时一定要选择上下文存在的类的项目也就是Data

然后就是用命令来操作包管理工具了,来具体总结一下吧!

你可以通过给的提示输入命令也就是get-help NuGet查看具体的一些帮助命令

主要命令应该就是这些,具体解释可以再去看看

或者输入get-help entityframework,结果如下,我们用到的就是Add-Migration(添加迁移)、Update-Database(更新数据库)这两个应该就是比较常用的了。

输入第一个命令 Add-Migration 这里需要给个参数(实际上有很多参数)这个参数就是会在生成的时间戳后面定义的Name参数

关于对Entity Framework 3.1的理解与总结的更多相关文章

  1. entity framework 新手入门篇(2)-entity framework基本的增删改查

    经过前两节的简单描述,终于可以进入entity framework的使用部分了.本节将对entity framework原生的增删改查进行讲解. 承接上面的部分,我们有一个叫做House的数据库,其中 ...

  2. Entity Framework 学习系列(1) - 认识理解Entity Framework

    目录 写在前面 什么是Entity Framework EF的优缺点 1.优点 2.缺点 如何理解ORM EF执行的原理 写在前面 在使用.net mvc 开发的时候.为了高效的开发,我们常常会搭配O ...

  3. APS.NET MVC + EF (02)---深入理解ADO.NET Entity Framework

    2.7 深入理解Entity Framework 性能问题几乎是一切ORM框架的通病,对于EF来说,引起性能低的原因主要在以下几个方面. 复杂的对象管理机制为了在.NET中更好地管理模型对象,EF提供 ...

  4. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库

    在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...

  5. Entity Framework教程(第二版)

    源起 很多年前刚毕业那阵写过一篇关于Entity Framework的文章,没发首页却得到100+的推荐.可能是当时Entity Framework刚刚发布介绍EF的文章比较少.一晃这么多年过去了,E ...

  6. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第一章:创建基本的MVC Web站点

    在这一章中,我们将学习如何使用基架快速搭建和运行一个简单的Microsoft ASP.NET MVC Web站点.在我们马上投入学习和编码之前,我们首先了解一些有关ASP.NET MVC和Entity ...

  7. Entity Framework 与 面向对象

    说要分享,我了个*,写了一半放草稿箱了两个星期都快发霉了,趁着周末写完发出来吧. 文章分为五部分: 基础.类讲述的是用到的一些EF与面向对象的基础: 业务是讲怎么划分设计业务: 设计模式和工作模式讲述 ...

  8. Entity Framework 教程——创建实体数据模型

    创建实体数据模型: 本文将带你创建实体数据模型(EDM)SchoolDB数据库和理解基础建设模块. 实体数据模型(EDM)是用于描述实体之间关系的一种模型,以下将使用Visual Studio 201 ...

  9. 开发 ASP.NET vNext 续篇:云优化的概念、Entity Framework 7.0、简单吞吐量压力测试

    继续上一篇<开发 ASP.NET vNext 初步总结(使用Visual Studio 2014 CTP1)>之后, 关于云优化和版本控制: 我本想做一下MAC和LINUX的self-ho ...

随机推荐

  1. Rocket - debug - Example: Quick Access

    https://mp.weixin.qq.com/s/SxmX-CY2tqvEqZuAg-EXiQ 介绍riscv-debug的使用实例:配置Quick Access功能. 1. Quick Acce ...

  2. jchdl - GSL实例 - Div

    因为对除法研究不深,这里略去不表.   有兴趣可以参考链接: https://github.com/wjcdx/jchdl/blob/master/src/org/jchdl/model/gsl/op ...

  3. Linux(二) 系统远程访问

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1. Why?为什么需要远程访问? 人和人之间对话有两种方式,一种是面对面直接交谈,另一种是打电话. 我 ...

  4. PELT(Per-Entity Load Tracking)

    引言 对于Linux内核而言,做一款好的进程调度器是一项非常具有挑战性的任务,主要原因是在进行CPU资源分配的时候必须满足如下的需求: 1.它必须是公平的 2.快速响应 3.系统的throughput ...

  5. Java实现 LeetCode 456 132模式

    456. 132模式 给定一个整数序列:a1, a2, -, an,一个132模式的子序列 ai, aj, ak 被定义为:当 i < j < k 时,ai < ak < aj ...

  6. Java实现 LeetCode 268 缺失数字

    268. 缺失数字 给定一个包含 0, 1, 2, -, n 中 n 个数的序列,找出 0 - n 中没有出现在序列中的那个数. 示例 1: 输入: [3,0,1] 输出: 2 示例 2: 输入: [ ...

  7. Java实现 蓝桥杯VIP 算法训练 星际交流

    算法训练 星际交流 时间限制:1.0s 内存限制:256.0MB 问题描述 人类终于登上了火星的土地并且见到了神秘的火星人.人类和火星人都无法理解对方的语言,但是我们的科学家发明了一种用数字交流的方法 ...

  8. Java实现 LeetCode 143 重排链表

    143. 重排链表 给定一个单链表 L:L0→L1→-→Ln-1→Ln , 将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→- 你不能只是单纯的改变节点内部的值,而是需要实际的进行节 ...

  9. Java实现汉诺塔问题

    1 问题描述 Simulate the movement of the Towers of Hanoi Puzzle; Bonus is possible for using animation. e ...

  10. Java实现LeetCode_0035_SearchInsertPosition

    package javaLeetCode.primary; public class SearchInsertPosition_35 { public static void main(String[ ...