项目介绍
以个人博客项目为例,做一个WEB API,通过三层架构,实现模型、数据访问、业务的分离。
界面展示如下:

使用sqlsugar
网站:SqlSugar ORM 5.X 官网 、文档、教程 - SqlSugar 5x - .NET果糖网
SqlSugar是一款 老牌 .NET 开源ORM框架,由果糖大数据科技团队维护和更新 ,
1. .NET中唯一支持全自动分表组件,SAAS分库,大数据处理的ORM
2. .NET 百万级写入、更新 性能最强框架
3. 使用最简单的ORM 【文档,视频教程】
4.媲美原生的极限的性能
5.Github star数仅次于EF 和 Dapper,每月nuget下载量超过1万
更多优点: 简单易用、功能齐全、高性能、轻量级、服务齐全、官网教程文档、有专业技术支持一天18小时服务
支持数据库:MySql、SqlServer、Sqlite、Oracle 、 postgresql、达梦、人大金仓、神通数据库
在vs中引入该框架过程如下:

安装即可
建立模型:Models
通过codefirst建立数据库模型,这样就省去了用指令建立数据库的麻烦,且易于供他人学习。
使用.NET5建立一个类:

主要有两大类模型:Models和DTO;
models如下:

通过抽象,我们可以找出所有模型的几个基本特征,并由此建立一个基础模型类
public class BaseId
{
[SugarColumn(IsIdentity=true, IsPrimaryKey=true)]
public int Id { get; set; }
}增填其他类:
public class BlogNews:BaseId
{
//nvarchar带中文比较好
[SugarColumn(ColumnDataType ="nvarchar(30)")]
public string Title { get; set; }
[SugarColumn(ColumnDataType ="text")]
public string Content { get; set; }
public DateTime Time { get; set; }
public int BrowseCount { get; set; }
public int LikeCount { get; set; }
public int TypeId { get; set; }
public int WriterId { get; set; }
/// <summary>
/// 类型,不映射到数据库
/// </summary>
[SugarColumn(IsIgnore =true)]
public TypeInfo TypeInfo { get; set; }
[SugarColumn(IsIgnore = true)]
public WriterInfo WriterInfo { get; set; }
}IsIgnore=true代表不映射到数据库,以后用导航查询处理。同时,也可以用于连表查询。
public class TypeInfo:BaseId
{
[SugarColumn(ColumnDataType ="nvarchar(12)")]
public string Name { get; set; }
}nvarchar对中文字符友好
public class WriterInfo:BaseId
{
[SugarColumn(ColumnDataType ="nvarchar(12)")]
public string Name { get; set; }
[SugarColumn(ColumnDataType = "nvarchar(16)")]
public string UserName { get; set; }
[SugarColumn(ColumnDataType = "nvarchar(64)")]
public string UserPwd { get; set; }
}建立模型:DTO
DTO层一定要遵循C#扁平化原则:没有对象,最多是系统对象。
public class WriterDTO
{
public int Id { get; set; }
public string Name { get; set; }
public string UserName { get; set; }
}public class BlogNewsDTO
{
public int Id { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public DateTime Time { get; set; }
public int BrowseCount { get; set; }
public int LikeCount { get; set; }
public int TypeId { get; set; }
public int WriterId { get; set; }
public string TypeName { get; set; }
public string WriterName { get; set; }
}版权声明:本文为weixin_49336442原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。