使用VS 2017 搭建 EF Core 项目笔记
一、查看开发环境
1、查看EF Core 版本。在 "程序包管理器控制台(Visual Studio NuGet Package Manager Console)" 或者 “CMD” 运行dotnet ef --version
Entity Framework Core .NET Command-line Tools
2.1.4-rtm-31024
2、执行命令Install-Package Microsoft.EntityFrameworkCore.Tools
,安装EF Core 工具
再次查看EF Core 版本
Entity Framework Core .NET Command-line Tools
2.1.4-rtm-31024
The EF Core tools version '2.1.1-rtm-30846' is older than that of the runtime '2.1.3-rtm-32065'.
如果后面的步骤出现上面的问题,再执行Update-Package Microsoft.EntityFrameworkCore.Tools
更新到最新
参考链接:https://stackoverflow.com/questions/52108659/need-to-update-ef-core-tools/52132251
参考链接:https://docs.microsoft.com/zh-tw/ef/core/miscellaneous/cli/powershell
二、安装 Entity Framework Core
参考:https://code.msdn.microsoft.com/How-to-using-Entity-1464feea
快速预览
At menu bar Tools -> NuGet Package Manager -> Package Manager Console
Run Install-Package Microsoft.EntityFrameworkCore.SqlServer
Run Install-Package Microsoft.EntityFrameworkCore.Tools
Run Install-Package Microsoft.EntityFrameworkCore.SqlServer.Design
1、Installing Entity Framework Core
安装Install-Package Microsoft.EntityFrameworkCore.SqlServer
To update the provider, use the Update-Package
command
To specify a specific version, use the Version
modifier. For example, to install EF Core 2.1.0 packages, append -Version 2.1.0
to the commands
官方链接https://docs.microsoft.com/en-us/ef/core/get-started/install/
2、Code First 数据先行,映射数据库到model
执行如下命令
Scaffold-DbContext "Server=.; Initial Catalog=DBName; Persist Security Info=True; User ID=testUser; Password=****;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
官网参考:https://docs.microsoft.com/en-us/ef/core/get-started/aspnetcore/existing-db
三、基础配置
1、asp.net core 有一个 status code middleware StatusCodePages, 在Startup.cs中添加StatusCodePagesapp.UseStatusCodePages(); // status code middleware
2、修改数据库连接,读取配置文件
参考链接:https://cloud.tencent.com/developer/ask/173660
基础知识
where T : struct T必须是一个结构类型
where T : class T必须是一个类(class)类型
where T : new() T必须要有一个无参构造函数
where T : NameOfBaseClass T必须继承名为NameOfBaseClass的类
where T : NameOfInterface T必须实现名为NameOfInterface的接口
EF封装参考
1、https://blog.csdn.net/xjn030594/article/details/81028416
2、https://blog.csdn.net/elie_yang/article/details/81809607
3、https://www.cnblogs.com/colder/p/4194838.html
4、官网https://docs.microsoft.com/zh-tw/ef/core/saving/basic
5、官网https://docs.microsoft.com/zh-tw/ef/core/miscellaneous/cli/powershell
EF Code First 参考
EFCore 多对多配置参考