赞
踩
一、创建项目
本来这个项目是写SQLite数据库的,但连接字符串,老不成功,郁闷死了,改成使用这个MySQL5.7数据库了。但大体一样的,大家能完全感觉到SqlSugar的强大。
因我是小白菜,可能写法不科学,请大家见谅,希望有帮助。
在此,先给SqlSugar打个广告:国人的产品,体量是EF30分之一,速度快,操作简单,就是说明书太少,希望大家顶一下。
这个步略了吧。我选择的是WEB模型视图控制器
二、安装支持Mysql.Data 包
三、ORM的使用,安装SqlSugar包
安装 ORM用的是SqlSugar
三、用数据库管理软件先弄一个现成的Mysql数据库
1.先安装MySql5.7。听说5.8以后要收费的哩。安装教程网上很多,就不多说了,我用Navicat进入管理
新建数据库Test,建表Users
上图很清楚了,不细说拉,先添加几个默认的数据进去。
六、配置数据库连接服务
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✔IDNameAgeNumber
@foreach (var item in Model)
{
@item.ID@item.Name@item.Age@item.Number
删除}
1111111111111
实际效果如下
这是我摸索了二天,感觉可行吧,但不知道具体流程对不,希望对大家有帮助。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。