Entity Framework Core 练习参考
项目地址:https://gitee.com/dhclly/IceDog.EFCore
项目介绍
对 Microsoft EntityFramework Core 框架的练习测试
参考文档教程
- 官方文档入口 https://docs.microsoft.com/zh-cn/ef/core/
- Razor Pages with Entity Framework Core in ASP.NET Core https://docs.microsoft.com/zh-cn/aspnet/core/data/ef-rp/intro?view=aspnetcore-2.2&tabs=visual-studio
- Entity Framework Core 2.0 使用入门Demo https://github.com/stulzq/EntityFrameworkCore2Demo
- Entity Framework Core 2.0 使用入门 http://www.cnblogs.com/stulzq/p/7717873.html
- Entity Framework Core 2.0 新特性 http://www.cnblogs.com/stulzq/p/7366044.html
- 一步步学习EF Core(1.DBFirst) https://www.cnblogs.com/GuZhenYin/p/6857413.html
- Entity Framework Code First (一) https://www.cnblogs.com/panchunting/p/entity-framework-code-first-conventions.html
- Contoso University https://docs.microsoft.com/zh-cn/aspnet/core/data/ef-rp/intro?view=aspnetcore-2.2&tabs=visual-studio
项目简介
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-Migration
、Update-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.SqliteException
:SQLite 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.EntityFrameworkCore和Microsoft.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
转载于:https://www.cnblogs.com/DHclly/p/11332591.html
Entity Framework Core 练习参考相关推荐
- 使用Entity Framework Core访问数据库(DB2篇)
上一篇讲了一些EF Core访问Oracle的坑.(感兴趣请移步:使用Entity Framework Core访问数据库(Oracle篇)) 这篇主要讲一下关于EF Core访问DB2的一揽子~问题 ...
- 使用 ASP.NET Core, Entity Framework Core 和 ABP 创建N层Web应用 第二篇
介绍 这是"使用 ASP.NET Core ,Entity Framework Core 和 ASP.NET Boilerplate 创建N层 Web 应用"系列文章的第二篇.以下 ...
- 手把手引进门之 ASP.NET Core Entity Framework Core(官方教程翻译版 版本3.2.5)
以下是手把手引进门教程,基于 ASP.NET Core, Entity Framework Core ,ABP 框架 创建Web 应用, PS: 自带自动的测试模块哦. 样例下载 (上 github ...
- Entity Framework Core 2.0 特性介绍和使用指南
前言 这是.Net Core 2.0生态生态介绍的最后一篇,EF一直是我喜欢的一个ORM框架,随着版本升级EF也发展到EF6.x,Entity Framework Core是一个支持跨平台的全新版本, ...
- ASP.NET Core 入门教程 8、ASP.NET Core + Entity Framework Core 数据访问入门
ASP.NET Core 入门教程 8.ASP.NET Core + Entity Framework Core 数据访问入门 原文:ASP.NET Core 入门教程 8.ASP.NET Core ...
- 使用ASP.NET Core和Entity Framework Core实现Angular 7 SPA CRUD
目录 Angular 7 Angular Core变化 Angular CLI更改 升级到Angular 7 添加新项目 创建新项目 使用Angular的前端设计和实现 添加模型和配置文件 添加Boo ...
- 创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表
创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表 创建数据模型类(POCO类) 在Models文件夹下添 ...
- 张高兴的 Entity Framework Core 即学即用:(一)创建第一个 EF Core 应用
写在前面 Entity Framework Core (EF Core) 是 .NET 平台流行的对象关系映射(ORM)框架.虽然 .NET 平台中 ORM 框架有很多,比如 Dapper.NHibe ...
- Entity Framework Core 2.0的新特性
虽然EF Core 2.0存在大量槽点,但是它也给出了不少亮点.在本文中,我们将介绍这次发布版的部分亮点. \\ 数据库表切分(Table Splitting) \\ ORM常被吐槽是总是对所请求数据 ...
最新文章
- 一份不错的vue.js基础笔记!!!!
- 2020年人工神经网络第二次作业-参考答案第八题
- malloc和free函数详解
- 开始使用asp.net ajax的控件工具包AJAX Control Toolkit
- android-学习1 配置环境
- Java笔记(七)HashMap和HashSet
- DisplayPageBoundaries 打开word后自动将页面间空白隐藏 (auto+定时器)
- RxSwift 之官方文档
- 需求、需求工程与需求工程师 — 4. 咨询能力的要求
- ping .............
- mac java连通r_MacOS安装rJava
- [转]出租车中的MBA
- TortoiseSVN 安装中文语言包,SVN中文语言包
- 【嵌入式算法】CRC校验算法
- pytube——下载YouTube视频的python库
- 关于计算机团队名字大全集,好听的团队名字大全
- Nginx搭建视频点播和视频直播服务器
- 计算机组成原理(3)——存储器
- 与java的相识、相知、相惜、相恋、相守
- 阿里云服务器ecs从购买到上传网站详细教程