摘要

之前尝试了,新建asp.net core站点,那么如何和mysql建立连接,如果操作mysql?本篇将尝试使用EntityFrameworkCore进行mysql的操作。

一个例子

首先新建一个空的Asp.net core站点,如图

安装MySql.Data.EntityFrameworkCore

http://www.nuget.org/packages/MySql.Data.EntityFrameworkCore/7.0.5-IR21

安装成功

这时你可以在project.json中看到MySql.Data.EntityFrameworkCore依赖的配置

新建一个User类

  1. public class User
  2. {
  3. public int Id { set; get; }
  4. public string Name { set; get; }
  5. public DateTime Dt { set; get; } = DateTime.Now;
  6. }

这里使用 db first方式进行数据库的操作,添加一个test的数据库,然后新建一个user表

添加数据库上下文类。

  1. using Microsoft.EntityFrameworkCore;
  2. using MySQL.Data.EntityFrameworkCore.Extensions;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Threading.Tasks;
  7. using Wolfy.EfMySql.Models;
  8.  
  9. namespace Wolfy.EfMySql.Data
  10. {
  11. public class TestContext : DbContext
  12. {
  13. public DbSet<User> User { set; get; }
  14. protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
  15. => optionsBuilder.UseMySQL(@"Server=localhost;database=test;uid=root;pwd=123456");
  16. }
  17. }

添加控制器

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading.Tasks;
  5. using Microsoft.AspNetCore.Mvc;
  6. using Wolfy.EfMySql.Data;
  7. using Wolfy.EfMySql.Models;
  8.  
  9. // For more information on enabling MVC for empty projects, visit http://go.microsoft.com/fwlink/?LinkID=397860
  10.  
  11. namespace Wolfy.EfMySql.Controllers
  12. {
  13. public class HomeController : Controller
  14. {
  15. // GET: /<controller>/
  16. public IActionResult Index()
  17. {
  18. var db = new TestContext();
  19. db.Add(new User { Name = "Hello world" });
  20. db.SaveChanges();
  21. var lst = db.Set<User>().ToList();
  22. return View(lst);
  23. }
  24. }
  25. }

添加路由

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading.Tasks;
  5. using Microsoft.AspNetCore.Builder;
  6. using Microsoft.AspNetCore.Hosting;
  7. using Microsoft.AspNetCore.Http;
  8. using Microsoft.Extensions.DependencyInjection;
  9. using Microsoft.Extensions.Logging;
  10.  
  11. namespace Wolfy.EfMySql
  12. {
  13. public class Startup
  14. {
  15. // This method gets called by the runtime. Use this method to add services to the container.
  16. // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940
  17. public void ConfigureServices(IServiceCollection services)
  18. {
  19.  
  20. }
  21.  
  22. // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
  23. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
  24. {
  25. loggerFactory.AddConsole();
  26.  
  27. if (env.IsDevelopment())
  28. {
  29. app.UseDeveloperExceptionPage();
  30. }
  31. app.UseMvc(routes =>
  32. {
  33. routes.MapRoute(name: "default", template: "{controller=Home}/{action=index}");
  34. });
  35.  
  36. }
  37. }
  38. }

浏览Index

通过上面,可以看出,是没有添加mvc服务,引起的,修改如下:

  1. public void ConfigureServices(IServiceCollection services)
  2. {
  3. services.AddMvc();
  4. }

视图

  1. @*
  2. For more information on enabling MVC for empty projects, visit http://go.microsoft.com/fwlink/?LinkID=397860
  3. *@
  4. @model List<Wolfy.EfMySql.Models.User>
  5. <ul style="list-style-type:none;">
  6. @foreach (var item in Model)
  7. {
  8. <li>@item.Id @item.Name @item.Dt.ToString("yyyy-MM-dd HH:mm:ss")</li>
  9. }
  10. </ul>

刷新页面

结语

这里算是尝尝鲜。关于asp.net core的更多内容,需要参考https://www.asp.net/core

探索Aspnetcore+mysql+efcore的更多相关文章

  1. [转]Android项目快速开发框架探索(Mysql + OrmLite + Hessian + Sqlite)

    前言 结合之前所用的ormlite和hessian,再加上SAE已经支持JAVA,把服务端切换到JAVA,也就有了本文.使用hessian来做数据传输,ormlite来实现客户端与服务端的数据存储,极 ...

  2. DotNetCore跨平台~EFCore2.0连接Mysql的烦恼-已解决

    回到目录 对于传统的nuget包,我们习惯上用官方或者大型组织的,因为它们比较考靠谱,但就在前两天.net core2.0发布后,我把efcore也升级到2.0了,mysql.EfCore也升级到支持 ...

  3. asp.net core 系列 19 EFCore介绍

    一.概述 目前最新的EF Core版本是3.0,最稳定的EF Core版本是2.2.EF Core 的计划与 .NET Core以及 ASP.NET Core 版本同步.EF Core 是一个 .NE ...

  4. 使用MySQL Shell创建MGR

    本篇知识点: 配置MGR所需的参数 使用MySQL Shell配置MGR shell.connect() var 设定临时变量 dba.createCluster() dba.getCluster() ...

  5. MySQL 到底是如何做到多版本并发的?

    之前的文章简单的介绍了 MySQL 的事务隔离级别,它们分别是:读未提交.读已提交.可重复读.串行化.这篇文章我们就来探索一下 MySQL 事务隔离级别的底层原理. 本篇文章针对 InnoDB 存储引 ...

  6. .net Core2建立MVC网站,部署

    1..net Core2使用sqlservver.EFCore,部署在linux上将出错,具体是错原因大概是:连接超时的意思.=>就想测试下linux到底能不能连接sqlserver.是两者技术 ...

  7. C# 数据操作系列 - 9. EF Core 完结篇

    0.前言 <EF Core>实际上已经可以告一段落了,但是感觉还有一点点意犹未尽.所以决定分享一下,个人在实际开发中使用EF Core的一些经验和使用的扩展包. 1. EF Core的异步 ...

  8. EFCore+Mysql仓储层建设(分页、多字段排序、部分字段更新)

    前沿 园子里已有挺多博文介绍了EFCore+Mysql/MSSql如何进行使用,但实际开发不会把EF层放在Web层混合起来,需要多个项目配合结构清晰的进行分层工作,本文根据个人实践经验总结将各个项目进 ...

  9. Mysql事务探索及其在Django中的实践(二)

    继上一篇<Mysql事务探索及其在Django中的实践(一)>交代完问题的背景和Mysql事务基础后,这一篇主要想介绍一下事务在Django中的使用以及实际应用给我们带来的效率提升. 首先 ...

随机推荐

  1. c#中对txt文件的读取与写入,针对二维数组

    class Program { ; ; static string[,] str = new string[ROW, COL]; static void Main(string[] args) { R ...

  2. Linux 下.desktop 桌面程序图标文件编写方式

    [Desktop Entry] //每个desktop文件都以这个标签开始,说明这是一个Desktop Entry文件 Version = 1.0 //标明Desktop Entry的版本(可选) N ...

  3. linux安装VirualBox虚拟机

    第一步:安装VNC 1. 安装vnc yum install -y tigervnc* 2.启动vncserver [root@xxx ~]# vncserver You will require a ...

  4. WPF Freezable–How to improve your application's performances

    在给ImageBrush绑定动态图片是会报以下错误. Error    4    The provided DependencyObject is not a context for this Fre ...

  5. EF继承关系映射

    继承映射策略的三种策略 There are following three different approaches to represent an inheritance hierarchy in ...

  6. [WPF系列]-高级部分 需要区分的东东

    ContentControl VS ContentPresenter What's the difference between ContentControl and ContentPresenter ...

  7. sass入门

    SASS是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护. SASS 官网介绍: sass is the most mature(成熟的),st ...

  8. BZOJ1057[ZJOI2007]棋盘制作 [单调栈]

    题目描述 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名.据说国际象棋起源于易经的思想,棋盘是一个8*8大小的黑白相间的方阵,对应八八六十四卦,黑白对应阴阳. 而我们的 ...

  9. CH Round #72 奇数码问题[逆序对 观察]

    描述 你一定玩过八数码游戏,它实际上是在一个3*3的网格中进行的,1个空格和1~8这8个数字恰好不重不漏地分布在这3*3的网格中. 例如:5 2 81 3 _4 6 7 在游戏过程中,可以把空格与其上 ...

  10. UVA - 11987 Almost Union-Find[并查集 删除]

    UVA - 11987 Almost Union-Find I hope you know the beautiful Union-Find structure. In this problem, y ...