项目地址:https://gitee.com/dhclly/IceDog.EFCore

项目介绍

对 Microsoft EntityFramework Core 框架的练习测试

参考文档教程

项目简介

IceDog.EFCore.Cmd.CodeFirst

这是一个 EFCore Code First 的示例项目,详情在项目里面的readme里面

配置连接字符串在 IceDog.EFCore\src\IceDog.EFCore.Cmd\Context\BloggingContext.cs

IceDog.EFCore.Cmd.DBFirst

这是一个 EFCore DB First 的示例项目,详情在项目里面的readme里面

IceDog.EFCore.Cmd.OfficalDemo

这个项目是微软官方的快速入门例子本人的练习,可供大家参考,详情在项目里面的readme里面。

官方教程地址:https://docs.microsoft.com/zh-cn/ef/core/

IceDog.EFCore.WebApiServer

这是 EF Core 在 WebApi项目里面的应用,和一般项目不同就在于配置数据库连接不在Context里面,而是在

IceDog.EFCore\src\IceDog.EFCore.WebApiServer\Startup.cs里面的ConfigureServices里面

详情在项目里面的readme里面

IceDog.EFCore.ContosoUniversity

此项目是实现如下文档的内容,教程看官方的即可

ASP.NET Core Razor 页面和 EF Core - 教程系列

https://docs.microsoft.com/zh-cn/aspnet/core/data/ef-rp/?view=aspnetcore-2.2

参考代码 https://github.com/aspnet/Docs/tree/master/aspnetcore/data/ef-rp/intro/samples

详情在项目里面的readme里面

常用的EF Core驱动

以下驱动都可以在nuget找到,MySql/MariaDB 推荐使用Pomelo EF Core组件,因为官方的目前可能存在bug,Pomelo EF Core同样是微软官方所推荐的。

官方推荐列表地址:https://docs.microsoft.com/zh-cn/ef/core/providers/index

  • SqlServer:Microsoft.EntityFrameworkCore.SqlServer
  • MySql:Pomelo.EntityFrameworkCore.MySql
  • Oracle:Oracle.ManagedDataAccess.Core Citms.EntityFrameworkCore.Oracle
  • SqlLite:Microsoft.EntityFrameworkCore.Sqlite

EF相关指令

添加迁移合并版本

Add-Migration v1.0.0 -o Migrations
Add-Migration v1.0.1 -o Migrations

新版指令

进入项目文件夹里面执行(含有.csproj文件的目录)

dotnet ef migrations add v1.0.0
dotnet ef migrations add -p "ConsoleApp.SQLite.csproj"#和上面等效
dotnet ef migrations add --project "ConsoleApp.SQLite.csproj"#和上面等效
dotnet ef migrations add -s "ConsoleApp.SQLite.csproj"#和上面等效
dotnet ef migrations add --startup-project "ConsoleApp.SQLite.csproj"#和上面等效

移除合并

Remove-Migration

新版指令

dotnet ef migrations remove

显示迁移版本列表

dotnet ef migrations list

更新数据库

Update-Database

新版指令

dotnet ef database update

删库指令

Drop-Database

新版指令

dotnet ef database drop

如果上述指令出现不能用的情况,在程序包管理器控制台输入如下命令

Import-Module C:\Users\Administrator\.nuget\packages\microsoft.entityframeworkcore.tools\2.1.0\tools\EntityFrameworkCore.psd1

如果执行上述命令出现 Build failed.

原因是解决方案里面有多种类型的应用程序,只留一种类型,其他的给卸载掉即可,如一个项目里面包含一个控制台项目和webapi项目,就算是设置了控制台为启动项目,但是启动的时候还是会启动Web项目,导致构建失败。

QA

1.执行Add-Migration init报错 Add-Migration : 无法将“Add-Migration”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。如何解决?

1、 编译项目。首次在项目中添加EF Core后,这一步必须做,否则都找不到后续要导入的 EntityFrameworkCore.psd1 模块。

2、找到前述文件的位置,使用Import-Module命令导入。我这里为:

Import-Module C:\Users\Administrator\.nuget\packages\microsoft.entityframeworkcore.tools\2.1.0\tools\EntityFrameworkCore.psd1

执行信息如下:

模块“EntityFrameworkCore”中的某些导入命令的名称包含未批准的动词,这些动词可能导致这些命令名不易被发现。若要查找具有未批准的动词的命令,请使用 Verbose 参数再次运行 Import-Module 命令。有关批准的动词列表,请键入 Get-Verb。

之后就可以正常使用命令了。

2.执行 Add-MigrationUpdate-Database出现 build failed 怎么办?

https://stackoverflow.com/questions/44785540/ef-core-add-migration-build-failed

原因是解决方案里面有多种类型的应用程序(项目里面包含Migrations),只留一种类型,其他的给卸载掉即可,如一个项目里面包含一个控制台项目和webapi项目,

就算是设置了控制台为启动项目,但是启动的时候还是会启动Web项目,导致构建失败。

当然,没有失败也不要纠结为啥了,没有失败更好

3.使用sqllite的时候,vs调试提示表不存在怎么办?

要从 Visual Studio 运行此示例,必须手动将工作目录设置为项目的根目录。 如果未设置工作目录,则会引发以下 Microsoft.Data.Sqlite.SqliteExceptionSQLite Error 1: 'no such table: Blogs'

设置工作目录:

  • 在“解决方案资源管理器”中,右键单击该项目,然后选择“属性”。
  • 在左窗格中选择“调试”选项卡。
  • 将工作目录设置为项目目录。
  • 保存更改。

链接:https://docs.microsoft.com/zh-cn/ef/core/get-started/netcore/new-db-sqlite#vs

附加

由于测试使用的是 mysql ,因此还需引入 Pomelo.EntityFrameworkCore.MySql v2.1.2

实际上对于控制台项目,需要引入nuget包,Microsoft.EntityFrameworkCore.Design,此时引入的版本是v2.1.4.

对于Web项目,则需要安装 Microsoft.EntityFrameworkCoreMicrosoft.EntityFrameworkCore.Relational,此时安装的版本都是v2.1.4。

不然执行下面的Entity Framework Core Tools命令会报错,提示缺失上面的依赖库。

学习文档地址:https://gitee.com/dhclly/icedog.script.test/tree/master/doc/dot-net/dot-net-core/entity-framework-core

Entity Framework Core 练习参考的更多相关文章

  1. 创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表

    创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表 创建数据模型类(POCO类) 在Models文件夹下添 ...

  2. .Net Core 2.0生态(4):Entity Framework Core 2.0 特性介绍和使用指南

    前言 这是.Net Core 2.0生态生态介绍的最后一篇,EF一直是我喜欢的一个ORM框架,随着版本升级EF也发展到EF6.x,Entity Framework Core是一个支持跨平台的全新版本, ...

  3. Entity Framework Core 2.0 中使用LIKE 操作符

    Entity Framework Core 2.0 中使用LIKE 操作符 不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻喷,如觉得我翻译有问题请挪步原博客地址 本博文翻译 ...

  4. ABP 教程文档 1-1 手把手引进门之 ASP.NET Core & Entity Framework Core(官方教程翻译版 版本3.2.5)

    本文是ABP官方文档翻译版,翻译基于 3.2.5 版本 官方文档分四部分 一. 教程文档 二.ABP 框架 三.zero 模块 四.其他(中文翻译资源) 本篇是第一部分的第一篇. 第一部分分三篇 1- ...

  5. Entity Framework Core 2.0 入门简介

    不多说废话了, 直接切入正题. EF Core支持情况 EF Core的数据库Providers: 此外还即将支持CosmosDB和 Oracle. EFCore 2.0新的东西: 查询: EF.Fu ...

  6. 使用Entity Framework Core访问数据库(DB2篇)

    前言 上一篇讲了一些EF Core访问Oracle的坑.(感兴趣请移步:使用Entity Framework Core访问数据库(Oracle篇)) 这篇主要讲一下关于EF Core访问DB2的一揽子 ...

  7. Entity Framework Core 2.0 入门

    该文章比较基础, 不多说废话了, 直接切入正题. 该文分以下几点: 创建Model和数据库 使用Model与数据库交互 查询和保存关联数据 EF Core支持情况 EF Core的数据库Provide ...

  8. ASP.NET Core 入门教程 8、ASP.NET Core + Entity Framework Core 数据访问入门

    一.前言 1.本教程主要内容 ASP.NET Core MVC 集成 EF Core 介绍&操作步骤 ASP.NET Core MVC 使用 EF Core + Linq to Entity ...

  9. 【EF】Entity Framework Core 2.0 特性介绍和使用指南

    阅读目录 前言 获取和使用 新特性 项目升级和核心API变化 下一步计划 遗憾的地方 回到目录 前言 这是.Net Core 2.0生态生态介绍的最后一篇,EF一直是我喜欢的一个ORM框架,随着版本升 ...

随机推荐

  1. cl_demo_output=>display 介绍

    Methods of CL_DEMO_OUTPUT PS:自己测试是display后的内表不能带表头. 类CL_DEMO_OUTPUT 在示例程序中创造了很多简单的数据输出的方法而不需要经典的list ...

  2. golang中type常用用法

    golang中,type是非常重要的关键字,一般常见用法就是定义结构,接口等,但是type还有很多其它的用法,在学习中遇到了以下几种,这点简单总结记录下 定义结构 type Person struct ...

  3. Java生鲜电商平台-订单中心服务架构与异常订单逻辑

    Java生鲜电商平台-订单中心服务架构与异常订单逻辑 订单架构实战中阐述了订单系统的重要性,并从订单系统的信息架构和流程上对订单系统有了总体认知,同时还穿插着一些常见的订单业务规则和逻辑.上文写到订单 ...

  4. 在CAD中进行圆角标注的方法

    在CAD中,大家经常都用听到CAD标注.那其实在CAD中进行标注也是比较常见的工作,CAD标注有文字标注,数值标注等一些标注的方式.下面要来说的就是在CAD中给圆角图形标注的方法,具体操作步骤如下: ...

  5. c# jetbrains rider使用一段时间后

    先上一个官方的对比图吧.https://www.jetbrains.com/rider/compare/rider-vs-visual-studio/index.html 功能上直接超越visual ...

  6. 上传App Store 被拒问题及解决方案总结

    最近公司比较忙,一直忙着写代码做新的应用,一连上线了几个应用,我们也是忙得焦头烂额的,都没时间做总结,今天趁APP审核期间,总结一下近期上传App Store遇到的一些问题和解决方法,以便以后查阅. ...

  7. Linux的启动过程的分析

    Linux的启动过程 Linux系统从启动大哦提供服务的基本过程为:首先机器家电,然后通过MBR或者UEFI装载GRUB,再启动内核,再由内核启动服务,最后开始对外服务 CentOS7要经历四个主要阶 ...

  8. 第十章 Centos7-系统进程管理

    第十章  Centos7-系统进程管理 本节所讲内容: 10.1  进程概述和ps查看进程工具 10.2  uptime查看系统负载-top动态管理进程 10.3  前后台进程切换- nice进程优先 ...

  9. 2019 Multi-University Training Contest 1 String(序列自动机+贪心)

    题意 链接:https://vjudge.net/problem/HDU-6586 给你一个字符串和k,还有每个字符出现次数的限制,求一个长度为k的字典序最小的满足限制的子序列. 思路 先构造出序列自 ...

  10. 苏州市java岗位的薪资状况(1)

    8月份已经正式离职,这两个月主要在做新书校对工作.9月份陆续投了几份简历,参加了两次半面试,第一次是家做办公自动化的公司,开的薪水和招聘信息严重不符,感觉实在是在浪费时间,你说你给不了那么多为什还往上 ...