OsharpNS轻量级.net core快速开发框架简明入门教程-代码生成器的使用
OsharpNS轻量级.net core快速开发框架简明入门教程
教程目录
从零开始启动Osharp
1.1. 使用OsharpNS项目模板创建项目
1.2. 配置数据库连接串并启动项目
1.3. OsharpNS.Swagger使用实例(登录和授权)
1.4. Angular6的前端项目启动
Osharp代码生成器的使用
2.1 生成器的使用
Osharp部分模块使用
3.1 Osharp.Redis使用
3.2 Osharp.Hangfire使用
3.3 Osharp.Permissions使用
Osharp深度学习和使用
4.1 切换数据库(从SqlServer改为MySql)
4.2 多上下文配置(多个数据库的使用)
4.3. 自定义模块的定义(Senparc.Weixin的使用)
4.4. 继续学习中....
OsharpNS官方资源
项目地址:https://github.com/i66soft/osharp-ns20
演示地址:https://www.osharp.org 直接使用QQ登录可以查看效果
文档地址:https://docs.osharp.org 正在完善中....
发布博客:https://www.cnblogs.com/guomingfeng/p/osharpns-publish.html 大神看这个文档应该就能跑起来,从零开始启动Osharp基于此文档完成
VS生成器插件:https://marketplace.visualstudio.com/items?itemName=LiuliuSoft.osharp
官方交流QQ群:85895249
Osharp代码生成器的使用
目录
下载并安装生成器插件
生成器在线下载地址:https://marketplace.visualstudio.com/items?itemName=LiuliuSoft.osharp
也可以通过VS2017菜单栏
工具-扩展和更新,检索Osharp进行插件的安装


配置项目字段信息
- 通过菜单运行Osharp代码生成器,启动之后直接全屏

生成器使用流程

从生成器界面上可以看到,生成器包括
项目信息、项目模块列表、模块实体列表、外键配置、实体属性列表配置流程:
配置项目信息:对项目整体信息进行配置
特别注意:在配置项目信息时,注意对
命名空间前缀的配置,以下图解决方案为例,命名空间前缀就应该填写CanDoo.Test,否则生成的时候会提示识别Osharp项目失败,影响生成
配置项目模块:一个系统往往有多个模块组成,本示例中配置两个模块
代码名称:生成后对应模块的命名空间和文件夹
显示名称:模块的中文含义,会体现在功能模块的名字上
配置模块实体:通过点击对应的项目模块进入模块的实体配置
代码名称:实体名称
显示名称:实体的中文名字
主键类型:表的主键类型,一般是int吧,根据实际选择
增:控制此实体是否生成新增的API,接口,实现
改:控制此实体是否生成编辑的API,接口,实现
删:控制此实体是否生成删除的API,接口,实现
数据权限:没折腾,不知道怎么用
锁定:生成IsLocked字段,具体的实现得自己实现
软删除:生成DeletedTime字段,用于标识删除时间
创建时间:生成创建时间
创建审计:生成创建时间,创建人Id字段 (包含前面的创建时间)
更新审计:生成更新时间,更新人Id字段
外键 按钮:点击进入外键配置
配置实体属性:
代码名称:实体的属性
显示名称:实体的注释
属性类型全名:实体的数据类型,特别注意:如果是实体集合,直接使用ICollection<>即可,如果是关联特定实体,比如关联User,需要填写User
只读:这个应该是生成界面时使用的属性
排序:这个应该是生成界面时使用的属性
编辑:这个应该是生成界面时使用的属性
过滤:这个应该是生成界面时使用的属性
必填:生成实体的时候会增加[IsRequired]属性
最小长度:这个应该是生成界面时使用的属性
最大长度:这个应该是生成界面时使用的属性
最小值:这个应该是生成界面时使用的属性
最大值:这个应该是生成界面时使用的属性
可空类型:对应int?,勾选了,数据类型会加"?"
外键:勾选了,说明当前属性是某个实体的外键
导航:勾选了,说明当前属性是某个实体的导航属性
关联实体:选择当前字段关联的实体,同一套“外键+导航”要选择相同的关联实体
输入DTO:勾选了,此属性会在实体的InputDto中生成对应属性
输出DTO:勾选了,此属性会在实体的OutputDto中生成对应属性
默认值:控制默认值
配置外键:
己方导航属性:配置实体属性时,勾选了
导航的属性会在这里显示供选择己方外键属性:配置实体属性时,勾选了
外键的属性会在这里显示供选择对方实体: 根据实际选择就行
对方导航属性:这里的具体设置看实例吧
外键关系:有一对多 多对一等选项 一般就用多对一和一对一就行,在外键配置部分详细说明
必须:是否必须的
删除行为:有多个选项,根据实际选择,建议使用Restrict
保存配置:配置过程中,顺手就去点一下,免得插件崩溃导致你奔溃
生成代码:所有配置完成后,点一下保存配置,然后再生成代码
多对一关系的配置
在本教程中,我们使用文章分类~文章~作者这3者来说明多对一关系的配置
从文章的角度出发,文章和文章分类是多对一,文章和用户也是多对一,文章分类和文章是双方都有对方的导航,文章和用户的导航只存在于文章中
文章分类:包含文章集合的导航
文章:包含文章分类和用户的导航
用户:不包含文章的导航
配置文章分类实体属性
配置
Articles属性,属性类型全名为ICollection<>,因为这个是导航属性,所以勾选导航,关联实体中配置为关联的实体CanDoo.Test.CMS.Entities.Article
配置文章实体属性
配置文章分类关联:
配置
ArticleCategoryId属性,属性类型全名为System.Int32,因为这个是外键,所以勾选外键,关联实体中配置为关联的实体CanDoo.Test.CMS.Entities.ArticleCategory;配置
ArticleCategory属性,属性类型全名为ArticleCategory,因为这个是导航属性,所以勾选导航,关联实体中配置为关联的实体CanDoo.Test.CMS.Entities.ArticleCategory配置用户关联:
配置
UserId属性,属性类型全名为System.Int32,因为这个是外键,所以勾选外键,关联实体中配置为关联的实体CanDoo.Test.Identity.Entities.User;配置
User属性,属性类型全名为User,因为这个是导航属性,所以勾选导航,关联实体中配置为关联的实体CanDoo.Test.Identity.Entities.User
配置外键
配置文章和文章分类的外键:己方导航属性
AritcleCategory,己方外键属性AritcleCategoryId,对方实体CanDoo.Test.CMS.Entities.ArticleCategory,对方导航属性Articles,外键关系ManyToOne,必须就根据实际需要填写了,删除关系选择Restrict,配置此属性,分类下如果存在文章,删除时会因为关联禁止删除配置文章和用户的外键:己方导航属性
User,己方外键属性UserId,对方实体CanDoo.Test.Identity.Entities.User,对方导航属性不要填写,这里能和填写的做一下对比,外键关系ManyToOne,必须就根据实际需要填写了,删除关系选择Restrict,配置此属性,分类下如果存在文章,删除时会因为关联禁止删除
代码生成并查看效果
当配置完成之后,点一下“保存配置”
点一下“生成代码”按钮,系统会询问是否为Osharp解决方案,点"是"就行了

代码生成之后,已经将代码添加到项目中,可以执行编译,如果有错,主要就是配置问题或者是有些类库没有引用,我在生成之后发现User实体对应的类库没有引用,引用之后能正常编译(当然前端中也有代码生成,因为我不用这个前端,所以就没仔细去研究了)


在
程序包管理控制台中运行add-migration -Context DefaultDbcontext initCMS,生成数据库迁移代码(如果没有多上下文,执行add-migration initCMS即可)在
程序包管理控制台中运行update-database -Context DefaultDbcontext,执行数据库迁移(如果没有多上下文,执行update-database即可)
运行项目,查看Swagger,会发现对应的5张表所有的增删改查API都已经生成,并能正常使用

OsharpNS轻量级.net core快速开发框架简明入门教程-代码生成器的使用的更多相关文章
- OsharpNS轻量级.net core快速开发框架简明入门教程-Osharp.Redis使用
OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...
- OsharpNS轻量级.net core快速开发框架简明入门教程-从零开始启动Osharp
OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...
- OsharpNS轻量级.net core快速开发框架简明入门教程-基于Osharp实现自己的业务功能
OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...
- OsharpNS轻量级.net core快速开发框架简明入门教程-Osharp.Hangfire使用
OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...
- OsharpNS轻量级.net core快速开发框架简明入门教程-Osharp.Permissions使用
OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...
- OsharpNS轻量级.net core快速开发框架简明入门教程-切换数据库(从SqlServer改为MySql)
OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...
- OsharpNS轻量级.net core快速开发框架简明入门教程-多上下文配置(多个数据库的使用)
OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...
- 【开源】OSharpNS,轻量级.net core快速开发框架发布
OSharpNS简介 OSharp Framework with .NetStandard2.0(OSharpNS)是OSharp的以.NetStandard2.0为目标框架,在AspNetCore的 ...
- [开源]OSharpNS - .net core 快速开发框架 - 快速开始
什么是OSharp OSharpNS全称OSharp Framework with .NetStandard2.0,是一个基于.NetStandard2.0开发的一个.NetCore快速开发框架.这个 ...
随机推荐
- (转) windows下 安装 rabbitMQ 及操作常用命令
该博客转载自:https://blog.csdn.net/gy__my/article/details/78295943 原作者:Eric Li 出处:http://www.cnblogs.com/ ...
- mysql cluster部署
一.mysql cluster的基本概念 1.mysql cluster的组成 管理(MGM)节点:这类节点的作用是管理MySQL Cluster内的其他节点,如提供配置数据.启 ...
- cannot import name '_imaging' 与No module named PIL解决方法
今天学习廖雪峰的python 第三方模块pillow一章. 直接使用from PIL import Image 会报"No module named PIL",显然这是没有安装pi ...
- C#避免踩坑之如何添加paint事件
看截图: 首先,右击->属性 然后出来这个界面. 接下来,注意看这个界面的上面:鼠标悬停这个闪电符号,看到没,事件!! 那个闪电符号,点它! 然后下拉找到这个: 你要事先在代码里面添加Form1 ...
- [ Java面试题 ] 集合篇
1.ArrayList和Vector的区别 这两个类都实现了List接口(List接口继承了Collection接口),他们都是有序集合,即存储在这两个集合中的元素的位置都是有顺序的,相当于一种动态的 ...
- Tomcat和JavaWeb目录和流程
Tomcat主要目录结构 bin 二进制可执行文件,包含启动和关闭tomcat文件 conf 配置文件,其中包含了server.xml.context.xml.web.xml等 webapps 存 ...
- 关于HTML5中的sessionStorage和localStorage
需求: 做项目的时大多数情况下我们需要对请求的数据进行多次复用,为了降低请求次数我们需要对请求的数据进行本地存储: 以前用的cooking来存储为本地数据,HTML5后提出sessioStorage. ...
- 如何更好的编写async函数
2018年已经到了5月份,node的4.x版本也已经停止了维护 我司的某个服务也已经切到了8.x,目前正在做koa2.x的迁移 将之前的generator全部替换为async 但是,在替换的过程中,发 ...
- mysql 和 oracle 的一些小知识
有很多应用项目, 刚起步的时候用MYSQL数据库基本上能实现各种功能需求,随着应用用户的增多,数据量的增加,MYSQL渐渐地出现不堪重负的情况:连接很慢甚至宕机,于是就有把数据从MYSQL迁到ORAC ...
- Shiro入门之一 -------- Shiro权限认证与授权
一 将Shirojar包导入web项目 二 在web.xml中配置shiro代理过滤器 注意: 该过滤器需要配置在struts2过滤器之前 <!-- 配置Shiro的代理过滤器 --> ...