65.9K
CodeProject 正在变化。 阅读更多。
Home

为三层架构自动生成代码(CRUD)

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.54/5 (15投票s)

2014年6月10日

CPOL

4分钟阅读

viewsIcon

53561

downloadIcon

3272

自动为三层架构(实体、数据访问和业务层)生成代码(CRUD),并基于表设计生成存储过程。

引言

在本技巧中,我们将尝试了解如何自动为分层架构生成代码,以及如何根据表架构自动生成 CRUD 操作的存储过程。通过这个工具,我们将尝试了解生成了哪些不同的类,以及这些类的用途,并尝试看看这个工具如何在编码时帮助我们节省时间。我们将尝试了解什么样的逻辑应该包含在这个工具中。

这是我为所有 .NET 朋友准备的一个小工具,可以自动生成代码,节省编码时间,避免冗余字段,遵循相似的名称和数据类型,并为 CRUD 操作创建具有相似字段的存储过程,这些字段与数据库表列相似。

我们可以在更短的时间内轻松创建项目架构,并以独特的结构维护所有项目。

背景

在创建项目、设计系统、创建存储项目时,我发现了一些问题。

  • 表列、存储过程、数据层、表示层等中的字段名和数据类型不一致。
  • 项目架构没有统一的结构,同一项目内的不同开发人员遵循不同的编码结构。
  • 由于命名约定不一致,导致执行相同操作(如创建相似的逻辑和操作)的字段、方法、函数和存储过程冗余。
  • 为执行相同任务(如创建相似的逻辑和操作)而消耗大量编码时间。

为了解决以上问题,我创建了这个简单的代码生成工具,对程序员来说非常有用。

Using the Code

1. 数据库映射

这是数据库映射窗口,用于从本地机器或网络中选择 SQL Server,从所选服务器中选择数据库,从所选数据库中选择表,并根据用户选择的各种条件生成代码。

This is DB Mapping page to select your sql servers from local machine or from network, select database, select tables, select various operation for code operations

步骤 1: 用户可以通过点击服务器详细信息部分中的 **S** 按钮输入服务器名称或从本地机器或网络加载服务器名称。根据服务器选择,输入相应的用户 ID 和密码,然后点击加载数据库按钮加载该服务器中的所有数据库。

步骤 2: 在数据库详细信息部分选择数据库,然后点击加载表按钮加载表。

步骤 3: 在选择表部分选择要生成代码的必需表,然后点击加载选定按钮。

步骤 4: 选择“自动”或“手动”选项,其他类选择“相同”或“通用”,属性类选择“相同”或“通用”。

步骤 5: 输入不带空格的项目名称,然后点击添加类名按钮将类信息添加到网格中。

步骤 6: 根据用户偏好,加载网格,即:

注意

选择选项部分: 如果选择“自动”,则数据网格中的所有复选框都将被选中。如果选择“手动”,则数据网格中的所有复选框都将被取消选中,然后用户可以从数据网格中选择所需的选项。

其他类部分: 如果选择“相同”,则 OClassName 将与 TableName 相同,即业务层和数据访问层中的所有类将单独生成。如果选择“通用”,则业务层和数据访问层中的所有类将生成在一个类中。

属性类部分: 如果选择“相同”,则类名将与 TableName 相同,即数据层中的所有属性类将单独生成。如果选择“通用”,则数据层中的所有属性类将生成在一个类中。

2. 数据库查询

此数据库查询窗口将根据用户选择的选项生成存储过程。您可以从此处执行这些查询,在您选择的数据库中生成存储过程。

This based generates stored procedures based on the selected options, you can execute these queries from here to stored procedure in your selected database.

3. 数据库基类

此数据库基类窗口将为项目生成具有预定义结构的基类。您可以在这些基类中添加自己的逻辑。

4. 数据库类

此数据库基类窗口将为项目生成具有预定义结构的基类。您可以在这些基类中添加自己的逻辑。

关注点

在创建此工具时,我学到了这些有趣的东西

  • 如何从网络中查找数据库服务器
  • 如何使用控件处理数据网格
  • 如何创建和使用用户定义组件
  • 如何处理不同的面板
  • 如何将控件停靠在窗口中

历史

  • 2014年6月10日:初始版本

我将继续更新此工具,以应对任何更改或改进。

© . All rights reserved.