以个人博客项目为例,做一个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; } ////// 类型,不映射到数据库 /// [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; } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)