一、概述
一直在用VS2019开发.NET的程序,综合做过的一些项目,这段时间归纳了一些项目中共用的一些模块,开发了一个基础框架,框架基于.NET Core 3.1,主要由数据层、业务逻辑层和Web表示层组成。开发框架的目录结构如下图所示:
图1 开发框架目录结构图
二、开发框架基本介绍
(一)数据访问层
目前公司常用的数据库主要有3种:MongoDB、MSSql、MySQL,为了更好的适应开发者针对数据库的使用,通过配置字,可方便的选择需要使用哪一种数据库进行项目的开发。
其中MongoDB使用Mongo公司提供的MongoDB C#/.NET驱动进行数据库的操作;MSSql使用Microsoft.EntityFrameworkCore进行数据库的操作; MySQL使用MySql.EntityFrameworkCore进行数据库的操作。
为了更好的贯彻框架解耦的要求,数据访问层分成了多个子项目:实体和接口声明、接口实现、目标数据库操作,其中目标数据操作根据不同的数据库类型,各自建立了应用实现所规定的接口。如下所示:
1. 接口声明
public interface ICollectionOperator<T>
{
List<T> Query(Expression<Func<T, bool>> filter, Expression<Func<T, object>> orderby = null, bool isdesc = true,object session=null);
……
}
2. 接口实现
public class CollectionOperator<T> : ICollectionOperator<T> where T : class,new()
{
protected DBBaseInfo DBInfo = null;
private MongoDBCollectionOperator<T> _mongoHelper = null;
private MSSQLCollectionOperator<T> _mssqlHelper = null;
private MySQLCollectionOperator<T> _mysqlHelper = null;
public List<T> Query(Expression<Func<T, bool>> filter, Expression<Func<T, object>> orderby = null