当我喜欢成熟的项目开发模型时,我使用代码生成工具数据库2SHARP与相关代码生成匹配。对于我引入的SQLSUGAR开发框架,确定整体体系结构后,我开始量身定制它们以与它们相关。编码开发,因此,当可以使用后续集成项目功能来生成模块的骨架代码时所需的模块要求,然后在此基础上逐渐添加自定义内容。本文介绍了基于SQLSUGAR的开发框架,该框架经过处理,该框架经过处理以生成框架中涉及的每个层或模块代码。
在上一篇文章中,引入了基于SQLSUGAR开发框架的主要设计模块。场景如下所示。
基本核心数据模块SugarProjectCore主要是开发业务所需的数据处理和业务逻辑所需的项目。为了方便起见,我们区分接口,模态和服务的三个目录以放置不同的内容。其中,模态是SQLSUGAR的映射实体。接口ISDEFINE访问接口,服务提供特定的数据操作实现。框架基类的某些和服务中的接口定义也放置在公共类库中。
Winform界面,我们可以使用.NET框架开发或.NET CORE6进行开发,因为我们的SugarProjectCore项目是通过.NET标准模式开发的,并且与两者兼容。
这是一个用于演示集成和使用的模块。当我构建代码生成工具代码模板时,我反复使用项目代码来指导项目代码的特定模板编写。这是正确的。
项目代码和模板完成后,该代码使用代码生成工具生成代码。在相互促销的情况下,Winform项目的接口代码生成也已完成,其中包括一般列表接口和主平板电脑Winform接口代码生成。
下一个权限系统的Winform项目如下所示。
在上一篇文章中:“基于SQLSUGAR(2)的开发框架的稳定介绍 - 基于中间表的查询和处理”,引入了一些基本功能,这也引入了Winform接口的接口效果。日志,字典管理,客户信息和其他模块。
在代码生成工具中,我们集成了针对项目代码生成的基于SQLSUGAR的开发框架,包括基于框架框架的框架生产以及Winform接口代码生成。
之前,我介绍了SQLSUGAR CORE核心项目的组成。
基本核心数据模块SugarProjectCore主要是开发业务所需的数据处理和业务逻辑所需的项目。为了方便起见,我们区分接口,模态和服务的三个目录以放置不同的内容。其中,模态是SQLSUGAR的映射实体。接口iSdefine访问接口,服务提供特定的数据操作实现。
对于模态层的类代码,传统的普通表(非间隔表),我们根据项目的需求生成以下代码。目的是使用它来定义相应的主密钥ID并通过接口。
对于中间手表,我们不希望其继承继承。
您只需要简单地标记可观的属性,以便他可以与其他业务表相关联。
对于接口层类,我们只需要处理固定的继承关系并更改类的名称。
其中,Imycrudservice是我们定义的基本接口,并且在常规添加,删除,修改等中保存处理基类,并且返回接口参数类型和返回值将传递到通用类型中。
基本接口可以尽可能地满足实际的项目接口,从而减少子类的代码编写,并获得统一调用基类功能的便利性。
对于中间表,除了物理类外,我们不需要生成其他接口和接口实现层,因为我们不单独称呼它们。
对于与特定业务对象相对应的接口实现,除了确定其继承关系外,我们还将重写其一些基类功能以实现更准确的处理。
接口实现类的定义如下所示。
在正常情况下,我们需要在子类中重写CreateFilterEdqueryAsync和ApplyDefaultSorting功能。
基于这些规则,编写我们需要的模板代码,让数据库表名称,注释以及名称,类型,注释以及外部键的主要密钥关系由表字段使用。
如下所示,代码是Nolocity模板代码,该代码用于生成上述条件查询处理,可以对此进行一些理解。
当我们完成所需的模板代码开发时,我们将在代码生成工具主接口的接口中集成相关的生成功能菜单。接口效应如下所示。
通过菜单选择[SQLSUGAR框架代码生成],进一步选择数据库中的表格以进行生成,逐步处理它,最后列出所选数据库表,并确认生产操作以生成生成核心项目的代码SQLSUGAR框架,如下图所示。
生成选择表后,下面显示了生成的物理模型类,包括生成中间表的物理类。
接口实现是根据特定业务对象规则生成的。
Winform接口包括两个部分:普通列表/编辑接口处理和Mainstorphic接口处理,如下图所示。
简单的业务表面界面(包括分页列表显示接口)集成了查看,编辑,新添加,删除,简介,导出,导出,查询/高级查询的功能。
列表接口和编辑接口的效果如下所示。
从表面界面中的主的效果如下所示。
让我们看一下生成的Winform列表接口代码,如下所示。
此外,我们将一些常用的处理逻辑放在函数中,例如Addata,Editdata,Deletedata,Binddata,GetData,getData,importData,ExportData等,如下所示。
获取数据时,我们可以根据用户的条件构建分页查询对象传输。调用接口获取数据后,可以处理分页控制的绑定处理。
如果是高级查询,我们将根据“查询查询”查询的属性在高级别查询对话框中分配一个值,然后在获得对象后获得查询。
在代码生成工具中,我们根据实际项目的代码来定义相应的模板文件,如下所示。
最后,在生成代码时,集成了这些Nolocity模板文件,并根据表对象的信息生成相应的文件,供我们开发和使用。
原始:https://juejin.cn/post/709854613089697677