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

业务模型概述

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

业务模型管理

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

业务模型分类

管理业务模型分类。

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中返回有权限的属性名称。
  • 业务模型删除

点击查看代码

 
实例化StudentModel。
设置主键值 item.Id = keyValue。
调用业务对象DeleteModel()方法 item.DeleteModel()。
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值