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参数

最新文章

  1. BizTalk 中使用 WCF-OracleDB adapter
  2. No module ata_piix found的解决方法
  3. c#强制执行内存回收
  4. tvm install
  5. AJAX— 异步传输
  6. jQuery.ajax()的一些例子
  7. 武汉科技大学ACM:1006: 华科版C语言程序设计教程(第二版)例题4.17
  8. js渲染的3d玫瑰
  9. WordPress 实用SEO插件总结
  10. hdu 4873 ZCC Loves Intersection(大数+概率)
  11. 8.23.3 IO-转换流的作用
  12. 解决 react-router / react-router-dom v4 history不能访问的问题
  13. etcd 增减节点
  14. Lock为线程上锁,防止数据混乱
  15. Cracking The Coding Interview 3.2
  16. MySQL Lock--INSERT加锁规则
  17. noip第5课资料
  18. SQL Server 阻止了对组件 &#39;Agent XPs&#39; 的 过程 &#39;dbo.sp_set_sqlagent_properties&#39; 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。
  19. dp练习(11)——石子并归
  20. PYQT设计无边框窗体

热门文章

  1. [验证码识别技术] 字符型验证码终结者-CNN+BLSTM+CTC
  2. Java实现 LeetCode 486 预测赢家
  3. Linux RPM命令查询
  4. 使用macaca抓页面元素,执行命令后报安装失败处理Error: Command failed: ……pm install -r &quot;/data/local/tmp/com.macaca.android.testing&quot;
  5. Python基础语法之“print()”函数
  6. python IDE pycharm的安装与使用
  7. swagger--Failed to load API definition.
  8. 嵌入式Linux内核开发工程师必须掌握的三十道题
  9. CentOS7——配置阿里云镜像源
  10. Dedecms升级php版本{dede:field.body/}不解析,文章内容不显示