.net core 3.1 mysql_.net core3.1 MVC使用sqlsugar方式操作mysql数据库

一、创建项目

本来这个项目是写SQLite数据库的,但连接字符串,老不成功,郁闷死了,改成使用这个MySQL5.7数据库了。但大体一样的,大家能完全感觉到SqlSugar的强大。

因我是小白菜,可能写法不科学,请大家见谅,希望有帮助。

在此,先给SqlSugar打个广告:国人的产品,体量是EF30分之一,速度快,操作简单,就是说明书太少,希望大家顶一下。

e5de40db95f6d54366dd0bc4d7acc904.png

这个步略了吧。我选择的是WEB模型视图控制器

二、安装支持Mysql.Data 包

37fa077eaa29688952ddd0c84432e290.png

三、ORM的使用,安装SqlSugar包

安装 ORM用的是SqlSugar

b3f6f48c565af8e816f7e034a4ab4299.png

三、用数据库管理软件先弄一个现成的Mysql数据库

1.先安装MySql5.7。听说5.8以后要收费的哩。安装教程网上很多,就不多说了,我用Navicat进入管理

新建数据库Test,建表Users

a05194d416801b379fa4b0ad85d977f8.png

上图很清楚了,不细说拉,先添加几个默认的数据进去。

六、配置数据库连接服务

1.把数据库的连接语句写到appsettings.json里面:

{

"DBConnection": {

"MySqlConnectionString": "server=localhost;database=test;uid=root;pwd=xxyyzz&;charset='utf8';SslMode=None"

},

"Logging": {

"LogLevel": {

"Default": "Information",

"Microsoft": "Warning",

"Microsoft.Hosting.Lifetime": "Information"

}

},

"AllowedHosts": "*"

}

2.创建一个读取访问该字符串的类ConfigExtensions.cs,当然网上很多现成的,我也随便拉了一个。

using Microsoft.Extensions.Configuration;

using Microsoft.Extensions.Configuration.Json;

using Microsoft.Extensions.DependencyInjection;

using Microsoft.Extensions.Options;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Threading.Tasks;

namespace gosqlite.DAL

{

public class ConfigExtensions

{

public static IConfiguration Configuration { get; set; }

static ConfigExtensions()

{

//ReloadOnChange = true 当appsettings.json被修改时重新加载

Configuration = new ConfigurationBuilder()

.Add(new JsonConfigurationSource { Path = "appsettings.json", ReloadOnChange = true })

.Build();

}

///

/// 获得配置文件的对象值

///

///

///

///

public static string GetJson(string jsonPath, string key)

{

IConfiguration config = new ConfigurationBuilder().AddJsonFile(jsonPath).Build(); //json文件地址

string s = config.GetSection(key).Value; //json某个对象

return s;

}

///

/// 根据配置文件和Key获得对象

///

///

/// 文件名称

/// 节点Key

///

public static T GetAppSettings(string fileName, string key) where T : class, new()

{

var baseDir = AppContext.BaseDirectory + "json/";

var currentClassDir = baseDir;

IConfiguration config = new ConfigurationBuilder()

.SetBasePath(currentClassDir)

.Add(new JsonConfigurationSource { Path = fileName, Optional = false, ReloadOnChange = true })

.Build();

var appconfig = new ServiceCollection().AddOptions()

.Configure(config.GetSection(key))

.BuildServiceProvider()

.GetService>()

.Value;

return appconfig;

}

}

}

3.建一个SqlSugar连接数据库的类MyContext.cs

using SqlSugar;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Threading.Tasks;

using Microsoft.Extensions.Configuration;

using Microsoft.Extensions.Configuration.Json;

namespace gosqlite.DAL

{

public class MyContext

{

public static IConfiguration Configuration { get; set; }

public MyContext()

{

Db11 = new SqlSugarClient(new ConnectionConfig()

{

ConnectionString = ConfigExtensions.Configuration["DbConnection:MySqlConnectionString"],

DbType = DbType.MySql,

IsAutoCloseConnection = true

});

//Print sql

Db11.Aop.OnLogExecuting = (sql, pars) =>

{

Console.WriteLine(sql + "\r\n" + Db11.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value)));

Console.WriteLine();

};

}

public SqlSugarClient Db11;//用来处理事务多表查询和复杂的操作

}

}

然后,配置就基本好了,下一步主是在MVC中用SqlSugar实现CRUN功能。

四.控制台中使用

1.增加表的实体模型

在Model下新建模型Users.cs,这个和数据库相皮配

using System;

using System.Collections.Generic;

using System.Linq;

using System.Threading.Tasks;

namespace testsqlite2.Models

{

public class Users

{

public int ID { get; set; } //主键

public string Name { get; set; } //用户名称

public int Age { get; set; } //用户年龄

public int Number { get; set; } //用户手机号码

}

}

打开自带的HomeController控制器

我写了三个方法 ,一个INDEX视图是读取User表进行显示,一个是增加记录ADD(),一个是删 除记录DelItem().没有加判断,因为仅是测试使用。

public IActionResult Index()

{

MyContext db = new MyContext();

var list = db.Db11.Queryable().ToList();//Search

return View(list); }

public IActionResult ADD()

{

MyContext db = new MyContext();

Users newadd =new Users();

int time1 = Convert.ToInt32(DateTime.Now.ToString("yyHHmmss"));

newadd.Name = "test"+ DateTime.Now.ToString("yyHHmmss");

newadd.ID = time1;

newadd.Age = 5;

newadd.Number = 55;

db.Db11.Insertable(newadd).ExecuteCommand();

return RedirectToAction("Index");

}

public IActionResult Delitem(int? ID)

{

MyContext db = new MyContext();

db.Db11.Deleteable(ID).ExecuteCommand();

return RedirectToAction("Index");

}

首先使用 MyContext db = new MyContext();实例SqlSugar,然后直接按他的入门教程中的一条操作记录主可以拉。

因为index()方法 中,返回的是Users记录合集,所以我在视图上引用了@model List

下面是index视图源码

@model List

@{

ViewData["Title"] = "Home Page";

}

1111111111111
@ViewData["Title"]

✔IDNameAgeNumber

@foreach (var item in Model)

{

@item.ID@item.Name@item.Age

@item.Number

删除

}

1111111111111

实际效果如下

d3ad48db696c24633665c6f7029fa7b7.png

这是我摸索了二天,感觉可行吧,但不知道具体流程对不,希望对大家有帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值