DotNetCore使用MySql

原创 Laughing  2017-09-24 23:00  阅读 123 次 评论 1 条

本文主要介绍DotNetCore 2.0使用MySql的教程

温馨提示

MySqlMySql.Data.EntityFrameworkCore官方NuGet包已经无法使用。本文主要介绍使用Pomelo.EntityFrameworkCore.MySql的使用方法。

其实我觉得Pomelo.EntityFrameworkCore.MySql使用其实更加方便,因为Pomelo.EntityFrameworkCore.MySql的使用方法跟SqlServer的使用方法更加相似,都是通过依赖注入。

添加NuGet包

本人使用的是VSCode,我直接通过.csproj文件添加的方法进行添加

添加实体类

  1. using System.ComponentModel.DataAnnotations;  
  2.   
  3. namespace Study.Models.Entity  
  4. {  
  5.     public class User  
  6.     {  
  7.         [Key]  
  8.         public int ID { getset; }  
  9.         [StringLength(20)]  
  10.         public string Name { getset; }  
  11.     }  
  12. }  

添加数据访问上下文类

  1. using Microsoft.EntityFrameworkCore;  
  2. using Study.Models.Entity;  
  3. using Microsoft.Extensions.Configuration;  
  4.   
  5. namespace Study.MySqlDAL  
  6. {  
  7.     public class DotNetCoreDbContext:DbContext  
  8.     {  
  9.         public DotNetCoreDbContext(DbContextOptions options):base(options){}  
  10.         public DbSet<User> Users{get;set;}  
  11.     }  
  12. }  

添加数据访问层

接口

  1. using Study.Models.Entity;  
  2.   
  3. namespace Study.MySqlDAL.DAL.Interface  
  4. {  
  5.     public interface IUserCore  
  6.     {  
  7.          int Add(User user);  
  8.     }  
  9. }  

实现

  1. using Study.Models.Entity;  
  2. using Study.MySqlDAL.DAL.Interface;  
  3.   
  4. namespace Study.MySqlDAL.DAL.Classes  
  5. {  
  6.     public class UserCore : IUserCore  
  7.     {  
  8.         private readonly DotNetCoreDbContext dotNetCoreDbContext;  
  9.         public UserCore(DotNetCoreDbContext _dbContext){  
  10.             dotNetCoreDbContext = _dbContext;  
  11.         }  
  12.         int IUserCore.Add(User user)  
  13.         {  
  14.             dotNetCoreDbContext.Database.EnsureCreated();  
  15.             if (dotNetCoreDbContext.Users.Add(user) != null)  
  16.             {  
  17.                return dotNetCoreDbContext.SaveChanges();  
  18.             }  
  19.             return 0;  
  20.         }  
  21.     }  
  22. }  

修改startup.cs进行注入

  1. services.AddDbContext<DotNetCoreDbContext>(options=>options.UseMySql(Configuration["MySql"]));  
  2. ervices.AddMvc();   

修改HomeController.cs测试

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Diagnostics;  
  4. using System.Linq;  
  5. using System.Threading.Tasks;  
  6. using Microsoft.AspNetCore.Mvc;  
  7. using Study.Models;  
  8. using Study.Models.Entity;  
  9. using Study.MySqlDAL;  
  10. using Study.MySqlDAL.DAL.Interface;  
  11.   
  12. namespace Study.Controllers  
  13. {  
  14.     public class HomeController : Controller  
  15.     {  
  16.         private readonly IUserCore userCore;  
  17.         public HomeController(IUserCore _userCore)  
  18.         {  
  19.             userCore = _userCore;  
  20.         }  
  21.         public IActionResult Index()  
  22.         {  
  23.             var user = new User  
  24.             {  
  25.                 ID = 0,  
  26.                 Name = "李森"  
  27.             };  
  28.             var isAddSuccess = userCore.Add(user);  
  29.             return View();  
  30.         }  
  31.   
  32.         public IActionResult About()  
  33.         {  
  34.             ViewData["Message"] = "Your application description page.";  
  35.   
  36.             return View();  
  37.         }  
  38.   
  39.         public IActionResult Contact()  
  40.         {  
  41.             ViewData["Message"] = "Your contact page.";  
  42.   
  43.             return View();  
  44.         }  
  45.   
  46.         public IActionResult Error()  
  47.         {  
  48.             return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });  
  49.         }  
  50.     }  
  51. }  

数据库连接配置

"MySql": "server=**;uid=**;pwd=**;DataBase=**;SslMode=None"

普通连接需要添加SslMode=None

本文地址:https://www.lisen.me/dotnetcore-using-mysql.html
版权声明:本文为原创文章,版权归 木子网 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

  1. 小鸟
    小鸟 【农民】 @回复

    测试一下回复