将您的实体类代码,自动映射到数据库,并实现Restful接口 支持动态查询,分页,排序,等等
本项目宗旨在于帮助开发者, 快速的搭建后端接口,减少后端开发时间,提高开发效率, 您只需要编写实体类,编译后放入项目的entitys文件下, 即可自动生成数据库表,以及对应的Restful接口 即插即用
本项目内涵盖命令行工具,命令行工具功能如下
OnModelCreating(ModelBuilder modelbuilder)
OnInsert
OnUpdate
OnDelete
OnFind
可选择性重写这些方法,这些方法会在对应的操作时自动调用
编写完实体后,编译项目,将编译后的dll放入本程序的entity目录下
本程序将自动重启,并加载新的实体,同步至数据库,实现其Restful接口
Get请求采取的是Url键值对的形式,例如:{ApiAddress}/api/userinfo?id=1
表示查出所有id为1的userinfo实体列表,
不过,实际EntityBase中的Id是Guid,这里只是举个例子
如果不传id参数,则表示查询所有userinfo实体列表,使用&可附加多个条件,
除了精准查询以为,也支持时间区间查询,例如:
{Address}/api/userinfo?B_CreateAt=2022-01-01&L_CreateAt=2022-01-02
表示查询出所有创建时间在2022-01-01到2022-01-02之间的userinfo实体列表
当然也可以只传一个参数,
例如:{Address}/api/userinfo?B_CreateAt=2022-01-01
表示查询出所有创建时间大于2022-01-01的userinfo实体列表
B_<属性名> 表示大于,E_<属性名>表示小于
分页查询需要三个参数,分别为排序字段(OrderBy)
,页面大小(PageSize)
以及页面索引(PageIndex)
,
例如:
{Address}/api/userinfo?PageSize=10&PageIndex=2&OrderBy=Id
这三个字段为关键字,在编写模型时请勿使用占用
排序字段(OrderBy)可选,默认为Id
页面索引 (PageIndex)可选,默认为1
页面大小 (PageSize)必选,否则不分页
模糊查询需要在属性名前加L_,
例如:{Address}/api/userinfo?L_Name=张三
表示查询出所有Name中包含张三的userinfo实体列表
Post请求采取的是Json格式的数据
Id
,CreateAt
,UpdateAt
这三个字段由程序自动维护,无需传值
Put请求采取的是Json格式的数据,但必须包含Id字段
Delete请求采取的键值对格式的数据,参数放在Url中,
例如:{Address}/api/userinfo?id=1
表示删除Id为1的userinfo实体
实现该功能,您的项目需要引用多个dll
分别是
注意:
Microsoft.AspNetCore.Mvc.Core在NuGet无法获取,一般在您电脑上的
C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\6.0.25\ref\net6.0\Microsoft.AspNetCore.Mvc.Core.dll
路径下,在项目添加引用即可
新增了个性化Api的功能,
可以在实体中编写个性化的Api,
编写静态方法,该方法参数列表为(HttpContext content, DbAccess<Pen> acc)
返回值为 ApiResult
三者的完全限定名为
Microsoft.AspNetCore.Http.HttpContext
--》在此获取请求信息dynamic.Project.Db.DbAccess
--》在此访问数据库dynamic.Project.Base.ApiResult
--》最终接口返回值该方法需要添加一个注解
[ApiMethodAttribute(path,method)]
<apiAddress>/api/<modelName>/test
,目前只支持精准路由All
表示任何请求方式[ApiMethod]
public static ApiResult Test(HttpContext content, DbAccess<Pen> acc)
{
return ApiResult.Success("访问成功");
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。