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. Docker: GUI 应用,Ubuntu 上如何运行呢?

    操作系统: Ubuntu 18.04 运行镜像: continuumio/anaconda3, based on debian Step 1) 安装 Docker # update the apt p ...

  2. 50个SQL语句(MySQL版) 问题八

    --------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 tea ...

  3. 【HBase】 常用命令

    创建表 hbase(main):006:0> create 'goods_zc','type' 0 row(s) in 1.3090 seconds => Hbase::Table - g ...

  4. Java实现Labeling Balls(拓扑排序的应用)

    1 问题描述 给出一些球,从1N编号,他们的重量都不相同,也用1N标记加以区分(这里真心恶毒啊,估计很多WA都是因为这里),然后给出一些约束条件,< a , b >要求编号为 a 的球必须 ...

  5. Java实现第九届蓝桥杯快速排序

    快速排序 以下代码可以从数组a[]中找出第k小的元素. 它使用了类似快速排序中的分治算法,期望时间复杂度是O(N)的. 请仔细阅读分析源码,填写划线部分缺失的内容. package bb; impor ...

  6. java实现第六届蓝桥杯移动距离

    移动距离 题目描述 X星球居民小区的楼房全是一样的,并且按矩阵样式排列.其楼房的编号为1,2,3- 当排满一行时,从下一行相邻的楼往反方向排号. 比如:当小区排号宽度为6时,开始情形如下: 1 2 3 ...

  7. IOS App如何调用python后端服务

    本篇文章旨在通过一个小的Demo形式来了解ios app是如何调用python后端服务的,以便我们在今后的工作中可以清晰的明白ios app与后端服务之间是如何实现交互的,今天的示例是拿登录功能做一个 ...

  8. WSO2 - MI

    简介 WSO2MI(Micro Integrator)是一个事件驱动的企业服务总线(Enterprise Service Bus),支持消息路由.数据格式转换.通信协议转换,支持连接SAP.KAFKA ...

  9. Java学习的一般过程

    伴随着科学技术的不断发展,世界开始走向信息化.网络化.大数据化.自然而然,计算机专业变得十分热门.尽管如此,计算机专业人才对社会来说仍然是供不应求,当然,这里指的是高层次技术人才.因此,对于我们这些占 ...

  10. 嵌入式Linux学习笔记(六) 上位机QT界面实现和串口通讯实现

    目录 (1).参考资料 (2).QT界面布局实现 (3).数据和操作逻辑 在上一章我们实现了下位机的协议制定,并通过串口通讯工具完成了对设备内外设(LED)的状态修改,下面就要进行上位机软件的实现了( ...