首页 > 其他分享 >EDP .Net开发框架--业务模型

EDP .Net开发框架--业务模型

时间:2024-05-20 12:07:35浏览次数:19  
标签:-- 模型 业务 ret 查询 Content EDP Net 属性

https://www.cnblogs.com/alwaysinsist/p/18190582

 

业务模型管理中所涉及的业务模型,业务模型的属性,业务模型的视图都是可以通过权限设置来实现数据的行(视图),列(属性)权限管控。业务模型是整个EDP平台的核心基础,数据的查询、新增、修改、删除、行列权限都是通过业务模型来实现的。

业务模型管理

按分类管理系统内各个业务模型,对应系统中各个业务对象。

业务模型分类

管理业务模型分类。
image

业务模型

  • 新增业务模型
    image
    image

  • 编辑业务模型
    image
    image
    image

  • 业务模型代码生成
    image
    image

    表设计文档模板,可以包含多个表结构设计
    image

业务模型开发

定义业务模型

创建业务模型类,继承基类ModelPermissionBase。定义好的业务模型可以在上述的业务模型管理功能中进行管理,实现数据行、列权限的管控。

点击查看代码

image

[ModelEnitity(TableName = "t_school_student", KeyName = "ID")]
TableName:表名
KeyName:主键对应的属性名

[ModelEnitity(ColumnName = "Name", IsRequired = true, MaxLength = 50)]
ColumnName:字段名称
IsRequired:是否必须,用于验证属性值是否必须有值
MaxLength:最大长度,属性值的最大长度

[ModelEnitity(ColumnName = "ContactMobile", Regex = @"^[1]([3-9])[0-9]{9}$")]
Regex:正则表达式,用于验证属性值格式

点击查看代码
在构造函数中通过SetDefaultQuerySQL()方法设置默认查询SQL,通过SetConnectionString()方法设置数据库连接字符串(若没设置则取默认数据库连接字串)。

public string CampusName { get; set; }
扩展属性是默认查询SQL中所查询的非业务模型映射的表中的字段。

点击查看代码
在业务对象上提供Create()和Modify()扩展方法,用于在创建和修改业务时调用,给业务对象必要属性赋值。

定义查询对象

查询对象是用来实现业务对象的查询,通过属性来设置查询条件。需要继承QueryModelBase基类。

点击查看代码

[QueryModel(Operator = QueryOperator.like, ColumnName = "Name")]
Operator:查询操作符(=、>、<、>=、like等)
ColumnName:对应业务对象的属性(实体属性,扩展属性),只要是默认查询SQL中包含的字段都可以作为查询对象的属性(查询条件)

业务模型使用

详见示例项目StudentBLL.cs

  • 业务模型属性验证
    var verify = item.Verify(keyValue);
    此处通过Verify()方法验证业务模型各属性值,通过属性验证标记(IsRequired,MaxLength, Regex)进行验证。

  • 业务模型新增

点击查看代码
通过业务模型Create()方法创建当前实体对象。
通过ValidateSQL属性值确保不会有重复的Number值插入到数据库。
调用InsertModel()方法新增业务模型数据。
  • 修改业务模型
点击查看代码
通过业务模型Modify()方法修改当前实体对象。
调用UpdateModel()方法修改业务模型数据。
  • 业务模型查询
点击查看代码
使用统一的返回对象 ResultModel<StudentModel>。
实例化ret.Content并设置操作的主键值ret.KeyValue = keyValue。
设置查询的主键值 ret.Content.ID = keyValue。
调用业务对象Query()方法 ret.Content.Query(db)。
执行Query()查询后,根据权限设置给ret.Content赋值。
ret.Content.AccessPropertyList中返回有权限的属性名称。
  • 业务模型列表查询
点击查看代码
使用统一的返回对象 ResultModel<List<StudentModel>>。
实例化 ret.Content = new List<StudentModel>()。
调用业务对象Query()方法 ret.Content.Query(queryModel.Page, queryModel, db)。
queryModel为查询对象StudentQueryModel的实例。
执行Query()查询后,根据权限设置给ret.Content赋值(有权限的数据集合)。
ret.Content[0].AccessPropertyList中返回有权限的属性名称。
PLAINTEXT 复制 全屏
  • 业务模型删除
点击查看代码
实例化StudentModel。
设置主键值 item.Id = keyValue。
调用业务对象DeleteModel()方法 item.DeleteModel()。
  合集: EDP

标签:--,模型,业务,ret,查询,Content,EDP,Net,属性
From: https://www.cnblogs.com/chinasoft/p/18201630

相关文章

  • Codeforces Round 945 (Div. 2) (A - E)
    A每一轮对总分的贡献都是\(2\),如果\(p_1+p_2+p_3\)为奇数则无解。\(p_1+p_2\lep_3\),最多\(p_1+p_2\)轮。\(p_1+p_2>p_3\),可以\(1,2\)轮流将\(3\)耗完,然后互相匹配,最多\(\dfrac{p_1+p_2+p_3}{2}\)。B如何判断一个\(k_0\)是否符合条件?处......
  • 您对光纤损耗了解多少?知道如何计算吗?
    光纤中的光在传输时会因吸收和散射而损失掉部分,造成光纤损耗,从而影响光传输网络的可靠性。正因如此,在光纤安装中对光纤链路损耗值进行准确的测量和计算是验证网络完整性和确保网络性能非常重要的步骤。接下来,本文将教您如何计算光纤损耗以及如何判断光纤链路的性能。光纤损耗的类......
  • git切换连接方式(ssh-https)
      要将git仓库的ssh链接切换为https链接,可以按照以下步骤操作: 1.打开终端,并进入到本地的git仓库目录中。 2.使用以下命令查看当前git仓库的远程链接:gitremote-v3.使用以下命令移除当前的ssh远程链接:gitremoteremoveorigin4.使用以下命令添加https远程链......
  • Ring Road 2
    RingRoad2题目链接思路:先考虑什么情况下会相交,对于两条道路\((x_1,y_1)\)和\((x_2,y_2)\)。这里默认\(x<y\),显然当$x2<x1<y2$并且\(y1<x2\)||\(y1>y2\)时(\(x1\)和\(y1\)互换也可以,即一个点在范围内,一个点在范围外),那么两条道路就会产生交点。因此对于......
  • 练习
    1234......
  • 【触想智能】工业一体机安装注意的问题与应用领域分析
    工业一体机是一款集工业控制显示设备、计算机系统和物联网等技术于一体的新型智能设备,其被广泛应用于工业生产、商业、交通、大数据等领域。工业一体机在安装时需要注意哪些问题以及其具体应用领域有哪些?下面小编给大家介绍一下。一、安装工业一体机需要注意以下......
  • 常见的排序算法——归并排序(四)
    本文记述了针对归并排序的3项改进和一份参考实现代码,并在说明了算法的性能后用随机数据进行了验证。◆思想本文实现了《算法(第4版)》书中提到的2项改进和练习题2.2.10。对小规模子数组使用插入排序。因为递归会使小规模问题中方法的调用过于频繁,所以改进对它们的处理方法......
  • Testing Egineer note:2024_5_20-day12-part01
    管理工具禅道一、禅道的介绍(1)定义禅道是一个项目管理工具,也是一个bug管理工具,还是一个用例管理工具。(2)作用:为了解决众多企业在管理中出现混乱,无序的现象,开发出来(3)来源:禅道属易软天川公司(4)禅道是集于产品管理,项目管理,测试管理于一身,同时包含事务管理,组织管理8众多功能,是中小企......
  • LLM-文心一言:什么是电网WAMS?
    电网WAMS即广域测量系统(WideAreaMeasurementSystem),是基于同步向量技术构成的新一代电网动态监测和控制系统。WAMS的信息来源于PMU(相量测量单元)所采集的精确实时和同步信息,因此具有异地高精度同步向量测量、高速通信和快速反应等技术特点,非常适合大规模电网调度。它为电网实时......
  • springBoot统一异常处理
    一、概述:  1.1.Spring在3.2版本增加了一个注解@ControllerAdvice,可以与@ExceptionHandler、@InitBinder、@ModelAttribute 等注解注解配套使用。简单的说,该注解可以把异常处理器应用到所有控制器,而不是单个控制器。借助该注解,我们可以实现:在独立的某个地方,比如单独一个类,定......