EFCore是微软推出的跨平台ORM框架,想较于EF6.X版本,更加轻量级。EFCore目前已经更新到2.x。

接下来用CodeFirst的方式来使用EFCore.

1.创建控制台程序

2.引入EFCore的Nuget包和Sqlserver的扩展(因为我这里用的Sqlserver数据库,若是别的数据库如Mysql引入相应的包即可)。

3.创建继承成自DbContext上下文,并重载OnConfiguring方法来构建数据库连接字符串

public class CoreDbContext : DbContext{/// <summary>/// 重载OnConfiguring构建数据库连接字符串/// </summary>/// <param name="optionsBuilder"></param>protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){// 这里直接写的字符串,实际项目中写在配置文件中,然后读取。这里的EFCoreDB就是生成的数据库名string connectionString = "server=127.0.0.1;uid=sa;pwd=sa123;database=EFCoreDB";optionsBuilder.UseSqlServer(connectionString);}}

4.创建Person实体类,通过EFCore映射成数据库中的表。并在上下文中注册

  public class Person{public int ID { get; set; }public int Age { get; set; }public bool Status { get; set; }public string Name { get; set; }public DateTime CreateTime { get; set; }}
 public class CoreDbContext : DbContext{/// <summary>/// 重载OnConfiguring构建数据库连接字符串/// </summary>/// <param name="optionsBuilder"></param>protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){// 这里直接写的字符串,实际项目中写在配置文件中,然后读取string connectionString = "server=127.0.0.1;uid=sa;pwd=sasa;database=EFCoreDB";optionsBuilder.UseSqlServer(connectionString);}// 注册实体public DbSet<Person> Person { get; set; }}

5.在Program文件中初始化数据库

class Program{static void Main(string[] args){var context = new CoreDbContext();// 告诉EFCore我们要创建数据库
            context.Database.EnsureCreated();//Console.WriteLine("Hello World!");
        }}

6.启动程序,查看效果

数据库和Person表已生成

生成的表结构

 这里解释一下,在实体中如果有名为ID的字段,或者实体名+ID的字段如:PersonID,那么EFCore生成的表会自动标识为主键。

备注:上边用来创建的数据库的方法 context.Database.EnsureCreated(); 如果存在当前数据库则不会创建。

那么增加了实体,该如何更新数据库呢?  context.Database.EnsureDeleted(); 这个方法顾名思义是用来删除数据库。

先调用EnsureDeleted 在调用 EnsureCreated 实现更新数据库的操作。

class Program{static void Main(string[] args){var context = new CoreDbContext();// 删除数据库
            context.Database.EnsureDeleted();// 告诉EFCore我们要创建数据库
            context.Database.EnsureCreated();//Console.WriteLine("Hello World!");
        }}

好嘞! 使用EFCore生成数据库和表就完成了。

微软跨平台ORM框架之EFCore相关推荐

  1. 官宣!微软跨平台 UI 框架 .NET MAUI 6 正式发布!

    翻译:Wendy Zang 校验:李卫涵 - 微软 MVP:朱震 - 微软 MVP 排版:Rani Sun 欢迎使用 .NET 多平台应用程序 UI.此版本标志着我们在统一 .NET 平台的多年旅程中 ...

  2. NET主流ORM框架分析

    接上文我们测试了各个ORM框架的性能,大家可以很直观的看到各个ORM框架与原生的ADO.NET在境删改查的性能差异.这里和大家分享下我对ORM框架的理解及一些使用经验. ORM框架工作原理 所有的OR ...

  3. 微软ORM框架EF初探

    微软ORM框架EF初探 一.ORM 顾名思义,ORM(ObjectRelational Mapping)对象关系映射,广义上是指面对对象的对象模型和关系型数据库的数据结构之间的相互装换.通俗来讲,就是 ...

  4. 基于.NET的微软ORM框架视频教程(Entity Framework技术)

    基于.NET的微软ORM框架视频教程(Entity Framework技术) 第一讲  ORM映射 第二讲 初识EntifyFramework框架 第三讲 LINQ表达式查询 第四讲 LINQ方法查询 ...

  5. 有哪些值得推荐的.NET ORM框架?

    前言: 最近有很多同学问我.NET方面有哪些好用的ORM框架,我觉得这方面的介绍网上应该会介绍的比较全面文章,于是我想搜一篇全面的介绍文章发给他们结果我发现网上说来说去基本上就是那几个,于是就有了这篇 ...

  6. 论ORM框架—EntityFrameworkCore

    欢迎大家阅读<朝夕Net社区技术专刊> 我们致力于.NetCore的推广和落地,为更好的帮助大家学习,方便分享干货,特创此刊!很高兴你能成为忠实读者,文末福利不要错过哦! 01 PART ...

  7. .Net开源微型ORM框架测评

    什么是ORM? 对象关系映射(英语:Object Relation Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间 ...

  8. EF 框架的简介、发展历史;ORM框架概念

    一.EF 框架简介 EF 全称是 EntityFramework .   Entity Framework是ADO.NET 中的一套支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架. OR ...

  9. ORM框架之EntityFramework

    1. ORM框架之EntityFramework介绍 高堂关注 0.1922016.06.25 02:02:53字数 2,241阅读 17,289 目录 ORM框架之EntityFramework介绍 ...

最新文章

  1. 人工智能助力北京冬奥会
  2. 自定义Spark Partitioner提升es-hadoop Bulk效率——续
  3. UVa 389 Basically Speaking
  4. ISIS 7 Professional仿真——键控流水灯
  5. Spring Cloud【Finchley】-03将微服务注册到Eureka Server上 + 为Eureka Server添加用户认证
  6. OpenCV形态morphology的实例(附完整代码)
  7. python的运算顺序和c一样吗,【Python】Python 对比 C语言的差异
  8. IplImage, CvMat, Mat 的关系和相互转换 再次理解 /(ㄒoㄒ)/~~
  9. Redis数据库的连接
  10. 【转】vc6.0移植到VS2010遇到的问题,散分给大家,虽然分不多,各位帮忙
  11. 2019年财政收支分析_2019年模锻行业经济运行情况分析
  12. QT之QTreeView使用总结
  13. 部分英文常用口语单词(30%转贴+70%原创)
  14. Only fullscreen activities can request orientation异常解决
  15. 用户的登录及注册功能
  16. 如何拆笔记本--键盘拆卸
  17. 什么叫少儿机器人编程
  18. Java代码清除Word文档的批注和修订 (Aspose.Words) Java老铁们,亲测有效!
  19. android记账本折线图_Android Studio——记账本以及图表可视化实现
  20. html中加入清除浮动,HTML中清除浮动的几种办法

热门文章

  1. NYOJ 543 遥 控 器
  2. android mtk 系统架构,Android振动器(Vibrator)系统详解
  3. U盘所有文件夹变成.exe的解决方法
  4. 外贸独立站建站的误区
  5. SSO单点登录原理详解
  6. github + jekyll 建自己的博客
  7. 理光c2004文件服务器错误,理光C2004exSP驱动
  8. sqlserver无法用windows身份验证直接登录
  9. sql~~~~~~~~
  10. flutter 绘制流水(水波上升)动态效果