WebEnh

.net7 mvc jquery bootstrap json 学习中 第一次学PHP,正在研究中。自学进行时... ... 我的博客 https://enhweb.github.io/ 不错的皮肤:darkgreentrip,iMetro_HD
随笔 - 1079, 文章 - 1, 评论 - 75, 阅读 - 174万
  首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

一:创建EF的类库,同时将此项目设置为启动项(为Scaffold-DbContext -tables指令使用),同时安装2个包  

            ①Microsoft.EntityFrameworkCore.Tools

            ②Pomelo.EntityFrameworkCore.MySql (这个是第三方的ef mysql 中间件)

例如:

            

 

 

二:生成数据库的实体和EF的DBcontext对象,用到的是 Scaffold-DBcontext命令

            在程序包控制台输入以下命令

                      Scaffold-DbContext -Force  "Server=****;User Id=root;Password=****;Database=****" -Provider "Pomelo.EntityFrameworkCore.MySql"

                      server:数据库地址,User Id:账号,Password:登录密码

                     如果是针对单表的更新,加一个-Tables 后面是要更新的表名

                     Scaffold-DbContext -Force  "Server=****;User Id=root;Password=****;Database=****" -Provider "Pomelo.EntityFrameworkCore.MySql"  -Tables "myTable"

                     执行完成之后会生成指定的是Model ,注意:表必须有主键,才会生成,如果没有主机会报 Unable to generate entity type for table “xxxx” 警告,当然实体也不会生成

                     出现的问题:如果有表字段为 datetime类型的,生成的时候会报错 应输入标识符,处理方法:把.()去掉。此问题如果有大神看到帮忙解答下

                          

 

            例如:

           

 

 

三:创建标准的web应用,进行使用

       ①在appsettings.json配置数据库的地址信息,注意  SslModel=none例如

 "MySqlConnection": "Database='***';Data Source=****;User ID=***;Password=***;CharSet=utf8;SslMode=None"

 

       ② 在startup.cs 配置注入,其中有用到一些引用 顺手引用一下

    

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public void ConfigureServices(IServiceCollection services)
       {
           services.Configure<CookiePolicyOptions>(options =>
           {
               // This lambda determines whether user consent for non-essential cookies is needed for a given request.
               options.CheckConsentNeeded = context => true;
               options.MinimumSameSitePolicy = SameSiteMode.None;
           });
 
           //ef mysql 配置
           services.AddDbContext<drewtestContext>(options => options.UseMySql(Configuration.GetConnectionString("MySqlConnection")));
 
           services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
       }

  ③之后就是标准的调用,例如在控制器中的使用

     

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class HomeController : Controller
   {
       drewtestContext _content;
       public HomeController(drewtestContext context)
       {
           _content = context;
       }
 
       public IActionResult Index()
       {
           List<SctonlyHome> list_sctonlyHomes = _content.SctonlyHome.ToList();
           return View();
       }
   }

到此就是基础的EF core mysql入门配置了。

 

 

 

 

 

附一些相关教程链接 

Entity Framework Core

https://docs.efproject.net
https://docs.microsoft.com/zh-cn/ef/

Entity Framework (EF) Core 是轻量化、可扩展、开源和跨平台版的常用 Entity Framework 数据访问技术。
EF Core 可用作对象关系映射程序 (O/RM),以便于 .NET 开发人员能够使用 .NET 对象来处理数据库,这样就不必经常编写大部分数据访问代码了。
https://docs.microsoft.com/zh-cn/ef/core/

反向工程
反向工程是基架实体类型类的过程,以及基于数据库架构的 DbContext 类。 可以使用 Scaffold-DbContext EF Core 包管理器控制台(PMC)工具的命令或 dotnet ef dbcontext scaffold .net 命令行接口(CLI)工具的命令来执行该命令。
https://docs.microsoft.com/zh-cn/ef/core/managing-schemas/scaffolding?tabs=dotnet-core-cli

 

EF Core 工具和扩展 NuGet 包
https://docs.microsoft.com/zh-cn/ef/core/extensions/

 

Entity Framework Core 工具参考-Visual Studio 中的包管理器控制台
https://docs.microsoft.com/zh-cn/ef/core/miscellaneous/cli/powershell

编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2019-06-12 c#实现定时任务(Timer)
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

了解更多