问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

【低码】asp.net core 实体类可生产 CRUD 后台管理界面

发布网友 发布时间:2024-09-30 19:06

我来回答

1个回答

热心网友 时间:2024-09-30 19:16

前言介绍

喜欢小规模团队的"单打独斗",有的时候即使在大公司,也经常做着3-5个人团队的小项目,相信很多人有类似的经历。

本文介绍如何将项目中已存在的【实体类】,直接生产出 CRUD 后台管理界面。

对于通用后台管理系统的生成,除了单纯的对单表 crud 操作外,我还喜欢利用导航属性的操作,比如:

1、Song、Tag 多对多场景,添加/更新 Song 时可以把 Tag 一起保存;

2、列表页,希望外键、多对多出现在过滤筛选条件;

3、列表页,希望枚举出现在过滤筛选条件;

4、删除时,级联删除所有相关数据;

等等诸如此类的繁琐操作,之所以说繁琐,是因为这些工作技术不难,属于严重的重复劳动。

在人员配备苛刻的环境下,选择尽量靠工具提高生产效率,这样我们才有更多的时间在上班摸鱼。。。

演示功能

Domain 目录下的文件是【实体类】

Program.cs 是 asp.NET core 启动代码

using FreeSql;using ojbk.Entities;var fsql = new FreeSql.FreeSqlBuilder().UseConnectionString(FreeSql.DataType.Sqlite, @"Data Source=test.db;Pooling=true;Max Pool Size=10").UseAutoSyncStructure(true).UseNoneCommandParameter(true).UseMonitorCommand(cmd => Console.WriteLine(cmd.CommandText + "\r\n")).Build();var builder = WebApplication.CreateBuilder(args);builder.Services.AddControllersWithViews();builder.Services.AddSingleton(fsql);builder.Services.AddEndpointsApiExplorer();builder.Services.AddSwaggerGen();var app = builder.Build();if (app.Environment.IsDevelopment()){app.UseSwagger();app.UseSwaggerUI();}app.UseAuthorization();app.MapControllers();app.UseDefaultFiles();app.UseStaticFiles();/******************************* 以下是核心代码 **************************/app.UseFreeAdminLtePreview("/",typeof(Config),typeof(Role),typeof(Menu),typeof(User),typeof(Department),typeof(Employee),typeof(Position),typeof(AppLog),typeof(LoginLog),typeof(OprationLog),typeof(IdleScheduler.TaskInfo),typeof(IdleScheduler.TaskLog));app.Run();

既然 ORM 已经对实体进行了配置,利用已存在的条件便利的产生后台管理功能,真是一大快事!!

它是 FreeSql 衍生出来的 .NETCore MVC 中间件扩展包 FreeSql.AdminLTE.dll,基于 AdminLTE 前端框架动态产生实体的增删查改界面;

输入:实体1、实体2、实体3

输出:后台管理的功能

只需要传入实体,就可以生产 curd 的管理功能,是不是有些骚啊~~~

先发几张运行后的图片尝个鲜:

这是根据实体产生 curd 界面的 mvc 中间件,开发时预览或简单管理数据好方便啊。看完预览图不由得再感叹一次 FreeSql 的易用性,那句口号:做 .NETCore 最方便的 ORM! 没有说错。。。作者多次提及:“我们是简约风格,没那么复杂的用法”,也验证了这一点。。

机制设定

1、添加、修改数据

中件间产生的界面包括添加、修改数据的功能,普通实体的根据属性的类型与 Html5 UI 一一映射;

比较特殊的映射规则:

c# 类型Html5布尔复选框枚举下拉选择日期日期控件ManyToOne 导航属性下拉选择ManyToMany 导航属性多选器

等等。。。

什么情况会产生【上传文件】控件? 有兴趣的可以了解源码,目前没有开放在外部配置。

2、列表查询、过滤筛选

中件间为每个实体提供了分页列表查询,每页为20条数据;

除此外,还提供了过滤条件的支持,规则是根据导航属性(ManyToOne、ManyToMany)。比如【岗位】,内含有【部门 Department】、【员工 Employee】、【角色 Role】,则【岗位】列表页会出现按【分类】筛选的UI,详见上面的 demo 示意图,或者下载 demo 运行;

3、删除数据

中件间为每个实体提供了批量删除的功能;

并且支持了复杂导航属性关系的级联删除功能,而这个功能不依赖数据库外键;

下载 Demo

我们一直习惯用 sqlite 做测试库,测试完毕直接删除目录,不留垃圾数据,所以下面的 demo 不需要修改任何地方,运行时自动建库、建表;

运行环境:.net6.0

https://files.cnblogs.com/files/FreeSql/freesql.adminlte.preview.zip

第一步:

dotnet restore

第二步:

dotnet run

将监听的地址复制,打开 chrome 浏览器粘贴访问。

思考人生

一番惊喜过后,你应该会考虑实用性,这样做有什么价值,可用于什么样的场景?

这个扩展包简单的输入,产生巨量的功能反馈。但由于生成的代码是 mvc + razor + jquery + AdminLTE,决定它很难在这个时代开花结果。

思路方向应该不会有问题,因为真的太方便了,如果生成后的代码是 Service + Vue + ElementUI,并且还提供了默认通用权限、定时任务等功能,就问香不香?

期待有兴趣志同道合的人改造。

若有使用疑问请留言,谢谢!

QQ群:4336577(已满)、8578575(在线)、52508226(在线)

github:https://github.com/2881099

https://github.com/2881099/FreeSql.AdminLTE

原文:https://juejin.cn/post/7099291627046305800

热心网友 时间:2024-09-30 19:12

前言介绍

喜欢小规模团队的"单打独斗",有的时候即使在大公司,也经常做着3-5个人团队的小项目,相信很多人有类似的经历。

本文介绍如何将项目中已存在的【实体类】,直接生产出 CRUD 后台管理界面。

对于通用后台管理系统的生成,除了单纯的对单表 crud 操作外,我还喜欢利用导航属性的操作,比如:

1、Song、Tag 多对多场景,添加/更新 Song 时可以把 Tag 一起保存;

2、列表页,希望外键、多对多出现在过滤筛选条件;

3、列表页,希望枚举出现在过滤筛选条件;

4、删除时,级联删除所有相关数据;

等等诸如此类的繁琐操作,之所以说繁琐,是因为这些工作技术不难,属于严重的重复劳动。

在人员配备苛刻的环境下,选择尽量靠工具提高生产效率,这样我们才有更多的时间在上班摸鱼。。。

演示功能

Domain 目录下的文件是【实体类】

Program.cs 是 asp.NET core 启动代码

using FreeSql;using ojbk.Entities;var fsql = new FreeSql.FreeSqlBuilder().UseConnectionString(FreeSql.DataType.Sqlite, @"Data Source=test.db;Pooling=true;Max Pool Size=10").UseAutoSyncStructure(true).UseNoneCommandParameter(true).UseMonitorCommand(cmd => Console.WriteLine(cmd.CommandText + "\r\n")).Build();var builder = WebApplication.CreateBuilder(args);builder.Services.AddControllersWithViews();builder.Services.AddSingleton(fsql);builder.Services.AddEndpointsApiExplorer();builder.Services.AddSwaggerGen();var app = builder.Build();if (app.Environment.IsDevelopment()){app.UseSwagger();app.UseSwaggerUI();}app.UseAuthorization();app.MapControllers();app.UseDefaultFiles();app.UseStaticFiles();/******************************* 以下是核心代码 **************************/app.UseFreeAdminLtePreview("/",typeof(Config),typeof(Role),typeof(Menu),typeof(User),typeof(Department),typeof(Employee),typeof(Position),typeof(AppLog),typeof(LoginLog),typeof(OprationLog),typeof(IdleScheduler.TaskInfo),typeof(IdleScheduler.TaskLog));app.Run();

既然 ORM 已经对实体进行了配置,利用已存在的条件便利的产生后台管理功能,真是一大快事!!

它是 FreeSql 衍生出来的 .NETCore MVC 中间件扩展包 FreeSql.AdminLTE.dll,基于 AdminLTE 前端框架动态产生实体的增删查改界面;

输入:实体1、实体2、实体3

输出:后台管理的功能

只需要传入实体,就可以生产 curd 的管理功能,是不是有些骚啊~~~

先发几张运行后的图片尝个鲜:

这是根据实体产生 curd 界面的 mvc 中间件,开发时预览或简单管理数据好方便啊。看完预览图不由得再感叹一次 FreeSql 的易用性,那句口号:做 .NETCore 最方便的 ORM! 没有说错。。。作者多次提及:“我们是简约风格,没那么复杂的用法”,也验证了这一点。。

机制设定

1、添加、修改数据

中件间产生的界面包括添加、修改数据的功能,普通实体的根据属性的类型与 Html5 UI 一一映射;

比较特殊的映射规则:

c# 类型Html5布尔复选框枚举下拉选择日期日期控件ManyToOne 导航属性下拉选择ManyToMany 导航属性多选器

等等。。。

什么情况会产生【上传文件】控件? 有兴趣的可以了解源码,目前没有开放在外部配置。

2、列表查询、过滤筛选

中件间为每个实体提供了分页列表查询,每页为20条数据;

除此外,还提供了过滤条件的支持,规则是根据导航属性(ManyToOne、ManyToMany)。比如【岗位】,内含有【部门 Department】、【员工 Employee】、【角色 Role】,则【岗位】列表页会出现按【分类】筛选的UI,详见上面的 demo 示意图,或者下载 demo 运行;

3、删除数据

中件间为每个实体提供了批量删除的功能;

并且支持了复杂导航属性关系的级联删除功能,而这个功能不依赖数据库外键;

下载 Demo

我们一直习惯用 sqlite 做测试库,测试完毕直接删除目录,不留垃圾数据,所以下面的 demo 不需要修改任何地方,运行时自动建库、建表;

运行环境:.net6.0

https://files.cnblogs.com/files/FreeSql/freesql.adminlte.preview.zip

第一步:

dotnet restore

第二步:

dotnet run

将监听的地址复制,打开 chrome 浏览器粘贴访问。

思考人生

一番惊喜过后,你应该会考虑实用性,这样做有什么价值,可用于什么样的场景?

这个扩展包简单的输入,产生巨量的功能反馈。但由于生成的代码是 mvc + razor + jquery + AdminLTE,决定它很难在这个时代开花结果。

思路方向应该不会有问题,因为真的太方便了,如果生成后的代码是 Service + Vue + ElementUI,并且还提供了默认通用权限、定时任务等功能,就问香不香?

期待有兴趣志同道合的人改造。

若有使用疑问请留言,谢谢!

QQ群:4336577(已满)、8578575(在线)、52508226(在线)

github:https://github.com/2881099

https://github.com/2881099/FreeSql.AdminLTE

原文:https://juejin.cn/post/7099291627046305800
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
重本和一本一样吗 永劫无间是第几人称:小说叙事视角分析 名字未定(第三人称双男主 周霖 温宿) 我得了职业病〈轻度苯中毒〉,有职业病诊断证明书.工伤认定期间我没上... ...后来感觉麻烦,就直接去药店买药,他开了很多 这是十年前的功放,求高手看看那几个孔是什么? 车子断保险之后再交是一样的吗 车险断交后再续交 女性查激素六项什么时候检查 有一个素质很低下的室友是一种什么样的体验? 新鲜笋子煮麻辣鱼怎么做 笋子煮麻辣鱼的做法 怎样写asp.net(c#)代码实现一个医院科室合并的功能 求:ASP.net(c#)验证SQL数据库表里的字段是否存在代码,我是新手 金华青鸟软件开发技术有限公司师资力量 进空间的封面如何设置的? 金属表面清洗技术市面常见表面清洗 电路板怎么清洗? 醋酸甲酯可以用作洗板水吗 傲娇和骄傲的区别在哪里 洗板水的常见配方? 甲硝唑芬布芬和人工牛黄甲硝唑的区别 戴尔笔记本刷完win10后,开机时按电源键没反应,只能先长按电源键5秒,然... 梦见买了一盆蛇花 ...存在撤单。但就是未成功,也无法卖出!怎么办? 把文件弄到中转站的方法? ...了几年的大伯, 你们好 我昨晚梦见已经死了好几年的大伯,梦见他才死... 2×5=10读作括号用口诀括号 大伯死一年了,昨晚还梦见奶奶照顾他,我回家叫他他还流泪? 2×5=10读作:___.一个因数是___,另一个因数是5.___是10. 芒果TV全屏会员和普通会员有区别吗? 手机搜狗输入法怎么关弹广告 梦见把蛇头斩断 梦到把蛇头斩断是什么意思 婚前怀孕了怎么办 “VAR”作为“水痘疫苗”缩写时的详细信息及应用 微信被拉黑了怎么知道是谁呢? 西瓜皮可以做成哪些美食? VB程序实现MySQL数据库连接vb连接mysql数据库 曹宇项目经历 vb与MySQL的中文问题 怎么设置好友进入我的空间时回答我的问题 龙港模板网站 别人进我QQ空间怎么要回答问题,我没设置啊? 怎样查看陌生人的QQ空间? 汤米粉怎样做才不会煮烂啊 如何在家里制作出道地且美味的河间驴肉火烧? 河间驴肉火烧适合怎样的烹饪方式? word字体怎样添加颜色图解 求魔兽争霸改彩色名字的工具和方法一定要能用的 谢谢了 魔兽争霸里,起名字怎么可以是彩色的。谢谢 入伏从哪一天开始算起 入伏计算公式-今日头条 ...看不清楚了,下来一看,车上面都结了厚厚的冰,后来一个眼睛也_百度知...