ef core 相关

1、为什么使用ef core?

  市面上orm框架那么多,为何偏偏选择ef,dapper那么好用,性能碾压ef,为什么使用dapper?

  对于这个问题我记得当初一个老师讲entityframework的时候讲过这么一个故事:

    1)一个公司的老板让开发部开发一个软件,一开始的数据库的技术栈:ado.net,当项目真正要用的时候,老板发现sqlserver的费用让他有点不情愿,同样是数据库人家mysql为什么不要钱,所以勒令开发部把数据库换成mysql,从中省下来的钱一部分作为奖金(呵呵哒~),开发部的人当时听了可以啊,有奖金拿,必须换啊,随之而来的是无尽的痛苦,各种语句专属语句不兼容,改了一个星期,勉勉强强能跑了,人累的够呛,项目跑起来后,各种问题随之而来,然而公司并没有熟悉mysql的DBA,运行一周后实在是搞不定了,老板最后决定还是换回sqlserver,又是各种改sql,最后改到人人想吐。

    2)同样尴尬的事儿也在另一个公司发生,但是这个公司的开发者幸福得多,技术栈选了ef,虽然中间也填了很多坑,但是逃过了改sql的命运,老板让从sqlserver 换到 mysql ,开发部要求一周的时间,其实两分钟就ok的事儿,仅仅是替换数据库仅仅换一下连接字符串跟provider(理想情况下是这样的),其余的时间就该他们happy了....。

  当然很多人会说,数据库是一开始就计划好的谁会没事儿换着玩儿,故事始终是故事,我需要的是性能,我就是推崇dapper,好吧,萝卜白菜各有所爱,愿ef越来越好,愿.net越来越好。

2、ef core实践

  1、开发工具vs code,为什么不用visual studio,宇宙第一IDE,工作中真的可以帮助我们省很多事儿,但是个人练习还是建议不用那么好的IDE,少的自动化,多点手动,记忆更加清晰。

  2、本次使用.net core 2.1+ef core 2.1

  3、使用dotnet tools 创建项目:dotnet new console -o EFCoreTest

  4、加入ef core 的依赖:dotnet add package Microsoft.EntityFrameworkCore,加入对应数据库的实现:dotnet add package Microsoft.EntityFrameworkCore.Sqlite(这里用sqlite,数据库比较轻量级),加入ef的tools:dotnet add package Microsoft.EntityFrameworkCore.Tools、Microsoft.EntityFrameworkCore.Tools.DotNet,.net core 中用都是用 json 作为配置文件,所以加入Json的Configuration,dotnet add package Microsoft.Extensions.Configuration、Microsoft.Extensions.Configuration.Json;

  5、编写DbContext代码如下:

appsetting.json: 

{

  "ConnectionStrings":{

    "SqliteConnectionString":"data source=efcore.db;"

  }

}

  6、编写model,随意写一个User类

  7、创建一个迁移:dotnet ef migrations add userinit,更新数据库:dotnet ef database update;

  8、使用ef,新增、编辑、查询数据

  9、基本完成,现在出现个情况我们需要在user类中添加一个字段,该如何实现

    1)、在user类中添加想要的字段;

    2)、创建添加字段的迁移:dotnet ef migrations add UserAddCol,更新数据库:dotnet ef database update;

  10、然后继续运行程序即可。

  11、创建的迁移还可以生成脚本文件:dotnet ef migrations script,默认是从迁移的第一步开始,也可指定如:dotnet ef migrations UserInit UserAddCol -o scripts/2018年06月03日.sql

后记:

  1、ef 简单操作还是非常爽的,减少了很多数据库基本操作

  2、code first 使用migrations实现创建数据库,添加字段等等

  3、官方中文文档

原文地址:https://www.cnblogs.com/wh-blog/p/9130054.html

时间: 2024-08-02 22:03:31

ef core 相关的相关文章

EF Core 相关的千倍性能之差: AutoMapper ProjectTo VS Mapster ProjectToType

在前两天遇到 .NET Core 中 EF Core 的异步与同步查询的百倍性能之差(详情之前的博文)之后,这两天又遇到了 AutoMapper ProjectTo<T> 与 Mapster ProjectToType<T> 的千倍性能之差. 问题是在昨天发现的,使用 AutoMapper ProjectTo<T> + EF Core 从数据库中获取20条记录竟然耗时 10s 左右. [Information] Executed DbCommand ("9,9

asp.net core+ef core

asp.net core+ef core 官方的文档https://docs.asp.net/en/latest/tutorials/first-mvc-app/start-mvc.html 先来看一下实现的效果 开始之前,确定本机已经有.NET Core环境.https://www.microsoft.com/net/core#windows 1.创建解决方案的文件结构如下图(模糊处理的过文件是自己后面加的和ef生成的). 2.要使用ef core,先引用ef core相关的程序包.https

在vs2015上使用asp.net core+ef core

官方的文档https://docs.asp.net/en/latest/tutorials/first-mvc-app/start-mvc.html 先来看一下实现的效果 开始之前,确定本机已经有.NET Core环境.https://www.microsoft.com/net/core#windows 1.创建解决方案的文件结构如下图(模糊处理的过文件是自己后面加的和ef生成的). 2.要使用ef core,先引用ef core相关的程序包.https://docs.efproject.net

EF Core 2.1 中的新增功能(2)

安装 EF Core 将 EF Core 添加到不同平台和常用 IDE 中的应用程序的所需步骤汇总. 分步入门教程 无需具备 Entity Framework Core 或任何特定 IDE 的原有知识,即可学习这些入门教程. 这些教程将逐步介绍如何创建用于查询和保存数据库中数据的简单应用程序. 我们已提供许多教程,指导你开始使用各种操作系统和应用程序类型. Entity Framework Core 可基于现有数据库创建模型,也可基于模型创建数据库. 提供的教程演示了这两种方法. .NET Fr

(3).Net Core的EF Core的使用

EF Core(Entity Framework Core)是 EF 的.net core 版本.EF Core 对 SQLServer 支持很好,也可以在Linux下连接SQLServer.不过如果在Linux下首选MySQL,因此这次试一试MYSQL. EFCore 的 Nuget: Microsoft.EntityFrameworkCore(一般不需要单独安装,安装mysql的包的时候会把相关依赖的包自动下载下来). 官 方 的 mysql  ef  provider经网上查资料网友告知还

net Core 通过 Ef Core 访问、管理Mysql

net Core 通过 Ef Core 访问.管理Mysql 本文地址:http://www.cnblogs.com/likeli/p/5910524.html 环境 dotnet Core版本:1.0.0-preview2-003131 本文分为Window环境和Mac Os X环境. 相关资源下载 Visual Studio Code:https://code.visualstudio.com DotNet Core:https://dotnet.github.io/ MySql.Data.

EntityFramework Core技术线路(EF7已经更名为EF Core,并于2016年6月底发布)

官方文档英文地址:https://github.com/aspnet/EntityFramework/wiki/Roadmap 历经延期和更名,新版本的实体框架终于要和大家见面了,虽然还有点害羞.请大家多体谅! 下面正式进入主题: Entity Framework Core (EF Core) 下面是EF Core 的计划和技术线路,注意,这些计划是可能发现变化的,因为很多事是很难预测的.即便如此,我们还是尽可能保持计划的公开和透明,以解大家对EF Core期望,以及做出相应的安排. Sched

一步步学习EF Core(1.DBFirst)

前言 很久没写博客了,因为真的很忙,终于空下来,打算学习一下EF Core顺便写个系列, 今天我们就来看看第一篇DBFirst. 本文环境:VS2017  Win7  .NET Core1.1    EF Core1.1.2 正文 这里我们不讨论是用DBFirst好,还是CodeFirst高端..各有各自的用处和适用场景.. 我们单纯的只是来使用这个DBFirst.. 既然是DBFirst,那么在用DBFirst之前..首先你要有一个数据库(嗯,废话) 其次,如果你是Windows7系统 那么需

[转]EntityFramework Core技术线路(EF7已经更名为EF Core,并于2016年6月底发布)

本文转自:http://www.cnblogs.com/VolcanoCloud/p/5572408.html 官方文档英文地址:https://github.com/aspnet/EntityFramework/wiki/Roadmap 历经延期和更名,新版本的实体框架终于要和大家见面了,虽然还有点害羞.请大家多体谅! 下面正式进入主题: Entity Framework Core (EF Core) 下面是EF Core 的计划和技术线路,注意,这些计划是可能发现变化的,因为很多事是很难预测