# RAP.Framework.Web.Core.3.0 **Repository Path**: hainee/RAP.Framework.Web.Core.3.0 ## Basic Information - **Project Name**: RAP.Framework.Web.Core.3.0 - **Description**: 将内部仓库项目RAP.Framework.Web.Core.2.0的核心部分移植为.Net Core 3.0版本 - **Primary Language**: C# - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-06-08 - **Last Updated**: 2025-06-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RAP.Framework.Web.Core ### 嫌弃EF之类框架不好用的同学,你可以试试我这个玩意儿或则我的思路哦! #### 项目介绍 利用SQLPlus模板技术来实现数据库访问的Web框架,可在模板中使用自定义的Sql语法糖来实现不同数据库之间的串行、并行以及关联查询。模板的Sql语法糖不影响数据库的原生Sql,也不受原生SQL影响。比如: @using db1; select * from tmp1; @using db2; select * from tmp2; 上面的SQL语句中,@using * 就是自定义的语法糖,其作用为指定执行SQL语句的数据库,数据库配置参见*.json的配置。 语法糖包含: 1. @using db1, [trans]; --指定数据源为db1,trans为可选参数,表示是否开启数据库事务; 2. resultAliasName(ModelName)[*]: select * from tmp1; -- resultAliasName: 指定结果集的别名为resultAliasName,ModelName指定结果集的模型名称;[*|FieldName]指定查询的结果集字段和结果集类型;该标识返回结果集第一条记录的所有(指定)字段; 3. @results tmp1, tmp2;--指定返回的结果集,多个结果集使用“,”号分割,不指定则默认返回所有结果集; 4. @trans;--执行当前数据源的SQL查询时开启事务; 5. @limit 0, 10;--SQLServer的分页语法糖; 6. @param resultAlias1 as param1;--将查询结果集resultAlias1作为下一步查询的参数,并且参数名为param1; 7. @mapping result1 as a join result2 as b ont a.typeId = b.id into a.types;--将集result2按条件匹配到result2的types属性中,可join多个数据源; 一个SQLServer的完整例子: @using db1; goodsList(Goods):select id as Id, name as Name, typeId as TypeId, categoryId as CategoryId from t_goods where name like '%' + $@key$ + '%'; types(GoodsType):select Id, Name from d_goods_type; categorys(GoodsCategoryType):select Id, Name from d_goods_category_type; @mapping goodsList as g join types as t on g.TypeId = t.Id into g.Types join categorys as c on g.CategoryId = c.Id into g.Categorys; @results goodsList; 上面的Sql执行完成后返回的结果集结构如下: { "goodsList": [{ "Id": 1, "Name": "口罩", "TypeId": 7, "Types": [{ "Id": 1, "Name": "工业产品" }, { "Id": 2, "Name": "医疗用品" }, { "Id": 4, "Name": "一般医疗用品" } ], "CategoryId": 1, "Categorys": [{ "Id": 1, "Name": "外贸出口" }] }] } *** #### 软件框架 IDE:VS2019+ Runtime: .NET Core 3.0 *** #### 安装教程 1. Git clone 2. Open file "/src/Web/RAP.ProjectTemplate.Core.sln" with VS2019+ 3. Press F5 to start web app *** #### 使用说明 该基础框架基于.NET Core 3.0,主要用于解决数据库访问方面的需求,一般是使用 Entity Framework 无法很好处理的需求。比如复杂查询统计类业务。 配置文件结构说明: 1. 应用配置 /wwwroot/config/siteConfig/*.json,通过接口:app.UseConfiguration( "~/config/siteConfig/config.dev.json" ); 来加载配置文件。 2. SQL模板 /wwwroot/config/tsql/*.config,通过接口:app.UseDomTemplate( "~/config/tsql/configures.config" ); 来加载SQL模板配置,SQL模板的使用方法参见模板内容。