.net core 实践笔记(三)--封装底层
前言:
有了前面的工作,简单的架子基本搭建起来了,因为条件有限,只能先测试SqlServer的了,源码放出来,也希望有兴趣的伙伴可以一起改善,相信可以成为未来进阶架构师的第一步,自己有小项目的时候可以直接拿来修改使用。
因为第一次在.net core搭建,经验欠缺,不足之处,欢迎批评指正。
后面将增加日志记录。
** 温馨提示:如需转载本文,请注明内容出处。**
源码:https://github.com/Xinzheng-Li/ASP.NET-Core-WebApi
再次邀请大神们改善指点,感激不尽。
概述
如图,像前几篇所述,简单的搭建了三层架构,本篇重点封装底层 (WebApi.Repository)。

说明
- Model 层的文件夹用于EF进行从数据库拉取实体,因为没有字段备注,故将实体类修改后拖出文件夹,以免日后更新时被覆盖掉。

- IDBRepository 接口,定义了最常用的五个数据库查询接口。

- DBRepository 使用Dapper和Dapper.Contrib实现接口,同时指定实现接口的数据库类型,默认MSSQL,也可在派生类中改写。

- ConnectionFactory 根据不同的数据库实例化Connect对象,这里因为条件有限,只写MSSQL和Mysql的,只测试了MSSQL。
- CONN_STRING_MSSQL、CONN_STRING_MYSQL 为不同数据库的连接字符串,初始化时由Setup读取配置文件后赋值

- SQLTYPE 默认数据库类型,设置后在调用ConnectionFactory.CreateSqlConnection()方法时作为缺省参数sqltype的默认值

- appsettings.json 配置文件,配置数据库类型、所有数据库的配置字符串

- URL: {Path}/api-docs/index.html
测试
选择Management API

代码所有接口均已测试,这里只列举一个

注意
- 初次编译代码需要重新制定文档路径。

- 发布时需要手动复制 WebApi.WebApi.xml 文件至发布目录,或者修改文件属性为复制到输出目录。

- Models下 DBContext.cd 通过EF拉取实体类会生成链接数据库的字符串,不用时最好删掉,拉取方法可查看前面的文章。
添加日志
本项目选用了NLlog作为日志输出,相信大家不会陌生。
Setup里注入

配置好配置文件便可使用,教程较多,这里不再赘述。
种草
希望有大神帮忙扩充优化,可以成为大家开发小项目时拿过来就能用的小框架。 =。=
.net core 实践笔记(三)--封装底层的更多相关文章
- GuavaCache学习笔记三:底层源码阅读
申明:转载自 https://www.cnblogs.com/dennyzhangdd/p/8981982.html 感谢原博主的分享,看到这个写的真好,直接转载来,学习了. 另外也推荐另外一篇Gua ...
- .net core 实践笔记(二)--EF连接Azure Sql
** 温馨提示:如需转载本文,请注明内容出处.** 本文链接:https://www.cnblogs.com/grom/p/9902098.html 笔者使用了常见的三层架构,Api展示层注入了Swa ...
- .net core 实践笔记(一)--开篇
** 温馨提示:如需转载本文,请注明内容出处.** 本文链接:https://www.cnblogs.com/grom/p/9902000.html 最近无聊自己设计了一个小项目,基本都使用想用没用 ...
- 《CMake实践》笔记三:构建静态库(.a) 与 动态库(.so) 及 如何使用外部共享库和头文件
<CMake实践>笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE <CMake实践>笔记二:INSTALL/CMAKE_INSTALL_PREFIX &l ...
- [Firefly引擎][学习笔记三][已完结]所需模块封装
原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读: 笔记三主要就是各个模块的封装了,这里贴 ...
- .NET Core学习笔记(7)——Exception最佳实践
1.为什么不要给每个方法都写try catch 为每个方法都编写try catch是错误的做法,理由如下: a.重复嵌套的try catch是无用的,多余的. 这一点非常容易理解,下面的示例代码中,O ...
- Retrofit 2.0 超能实践(三),轻松实现文件/多图片上传/Json字符串
文:http://blog.csdn.net/sk719887916/article/details/51755427 Tamic 简书&csdn同步 通过前两篇姿势的入门 Retrofit ...
- .net core实践系列之短信服务-架构设计
前言 上篇<.net core实践系列之短信服务-为什么选择.net core(开篇)>简单的介绍了(水了一篇).net core.这次针对短信服务的架构设计和技术栈的简析. 源码地址:h ...
- .net core实践系列之短信服务-Sikiro.SMS.Api服务的实现
前言 上篇<.net core实践系列之短信服务-架构设计>介绍了我对短信服务的架构设计,同时针对场景解析了我的设计理念.本篇继续讲解Api服务的实现过程. 源码地址:https://gi ...
随机推荐
- html-路径的介绍
一.绝对路径 绝对路径是指文件在硬盘上真正存在的路径 - D:\Java\JavaWeb\day01\a.jpg - http://www.baidu.com/b.jpg 二.相对路径 一个文件相对于 ...
- JS上传图片转化成Base64编码demo
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 微服务架构之spring cloud 介绍
在当前的软件开发行业中,尤其是互联网,微服务是非常炽热的一个词语,市面上已经有一些成型的微服务框架来帮助开发者简化开发工作量,但spring cloud 绝对占有一席之地,不管你是否为java开发,大 ...
- mysql存储过程模板
CREATE DEFINER=`root`@`localhost` PROCEDURE `SP_test`(IN `nodeCode` varchar(100),IN `id` varchar(36) ...
- Python爬虫教程-00-写在前面
鉴于好多人想学Python爬虫,缺没有简单易学的教程,我将在CSDN和大家分享Python爬虫的学习笔记,不定期更新 基础要求 Python 基础知识 Python 的基础知识,大家可以去菜鸟教程进行 ...
- centos虚拟机网卡配置
连接模式为NAT
- 解决nginx使用proxy_pass反向代理时,session丢失的问题
这2天在测试Nginx作为反向代理到Tomcat应用时,session丢失的问题.经过一系列查看官方文档和测试,发现如下:1.如果只是host.端口转换,则session不会丢失.例如: ...
- 用canvas播放scratch文件
原文地址:https://blog.csdn.net/qq_36268036/article/details/84262540 基于Github上的scratch-render实现sb2或者sb3文件 ...
- 软工团队 - 预则立&&他山之石
软工团队 - 预则立&&他山之石 团队任务计划 时间 人员 任务 10.23-10.29 张昭锡 初拟Android代码规范 李永盛 初拟PHP代码规范 刘晨瑶 初拟Git代码规范 刘 ...
- node.js和MongoDB学习网址
回想我写的node.js和MongoDB的博客,都是菜鸟教程那里的知识,所以我打算不写了,那些都是基础,在项目开发中,我发现单单有那些基础不行,这些基础可以尽快学好,然后学习项目开发过程 下面是两个教 ...