一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第6天,点击查看活动详情。
系列文章链接
SqlSugar简单使用记录(一)
SqlSugar简单使用记录(二)
经过前面两篇文档,基本可以把SqlSugar用起来了
本篇就通过写一个小demo,把SqlSugar用起来看看
1、并非性能测试,这个很多人已经做过了,我也相信它的性能。我要做的就是亲自实践,那怕一个功能简陋的demo,但是实现过程中总能遇到各种问题,慢慢去解决它
2、.Net程序员一般都会选择使用Razor来写页面,本文将换一种方式来写,页面将使用类似于MVVM模式
3、下文将会用到SqlSugar、bootstrap4、jsview等技术
话不多说,开始TodoList吧
从零开始,首先新建一个asp net Core Web项目
创建成功后,项目目录中找到
依赖项,鼠标放上去,点击右键,点开菜单,选择管理NuGet程序包
然后搜索安装即可
首先创建一个实体类
TodoList
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using SqlSugar;
namespace SugarDemo.Models
{
public class TodoList
{
[SugarColumn(IsPrimaryKey = true)]
public Guid Id { get; set; }
[SugarColumn(ColumnDataType = "nvarchar(200)", ColumnDescription = "标题")]
public string Title { get; set; }
[SugarColumn(ColumnDataType = "nvarchar(500)", ColumnDescription = "内容")]
public string Content { get; set; }
[SugarColumn(ColumnDescription = "已完成")]
public bool IsFinish { get; set; }
[SugarColumn(ColumnDescription = "创建时间")]
public DateTime CreateTime { get; set; }
}
}
一步到位,ColumnDataType可防止中文乱码
建议实体类放到指定文件夹中,例如项目目录下创建Models文件夹,实体类全部放进去,方便管理,下同
然后直接到Startup.cs文件的 ConfigureServices方法中配置SqlSugar
几行代码就可以完成配置
public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages();
//SqlSugar配置
var db = new SqlSugarClient(new ConnectionConfig()
{
ConnectionString = "你的sqlserver数据库连接字符串",
DbType = DbType.SqlServer,
IsAutoCloseConnection = true,
});
db.DbMaintenance.CreateDatabase();
db.CodeFirst.InitTables(typeof(TodoList));
services.AddSingleton<ISqlSugarClient>(db);
}
接下来,就需要写个控制器了,用于对实体类数据的增删改查
在项目目录下创建文件夹Controllers,鼠标放Controllers文件夹上,点击右键,选择添加,继续选择控制器
或者鼠标放在项目名称上,点击右键,添加,新建项(这样创建出来的控制器需要手动拖拽到Controllers文件夹中)
然后选择创建一个空的api控制器
名称记得修改为:实体类名+Controller.cs --->
TodoListController.cs
创建出来如下
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace SugarDemo.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class TodoListController : ControllerBase
{
}
}
将SqlSugar数据库实例对象通过控制器的构造器注入进来
再写一个查询方法
修改下通用路由格式,方便使用
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using SqlSugar;
using SugarDemo.Models;
namespace SugarDemo.Controllers
{
[ApiController]
[Route("api/[controller]/[action]")]
public class TodoList2Controller : ControllerBase
{
private readonly ISqlSugarClient db;
public TodoList2Controller(ISqlSugarClient _db)
{
db = _db;
}
/// <summary>
/// 查询
/// </summary>
/// <returns></returns>
[HttpGet]
public List<TodoList> GetList()
{
return db.Queryable<TodoList>().OrderBy(x=>x.CreateTime, OrderByType.Desc).ToList();
}
}
}
为了控制器能正常工作,需要在Startup.cs中再配置一个路由,否则无法调用控制器中方法
很简单,只需要在原来的UseEndpoints中添加一个MapControllerRoute即可
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
//控制器路由配置
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
到这里,F5运行项目,在当前url后面添加 /api/todolist/getlist 即可调用控制器的查询方法
出现如上图示,项目如预期正常跑起来了
如果有刚入门小伙伴,到这里报错了,无法解决,可以评论区联系我~
本文先说到这里,后面再开始完善
- 页面的初始搭建(UI就使用bootstrap4了)
- jsview的基本使用
- ajax请求数据
- 模板渲染数据
- 增删改数据
- 查询数据
- 功能优化
不要觉得太基础,开卷有益,每一次的成长,都是一次历练,慢慢摸索,总有一天回过头来,已是参天大树!