实体框架

通用框架

开发时经常将数据处理区分为:单表、一对多、多对多三种模式,同一模式在处理过程基本相同,为提高开发效率,平台通过VS插件功能,对平时使用频率较高的模式提供代码框架,这样避免了很多重复的工作,当然框架不是万能的,可以通过继续修改以支持特定需求。

2.png

单实体框架已在小试牛刀中介绍。

入手一个新框架,大家总想通过实现简单功能以管中窥豹,下面就演示利用VS扩展中的代码框架进行增删改查的三个例子,这些例子也可参见搬运工样例。

初始化样例库

演示前先初始化样例库,参见创建空项目时的初始化数据库 的设置,唯一不同是新库内容选择样例库,后续过程也相同,直到启动该服务。 29.png

注意
请始终保持Svc运行状态,VS扩展工具会使用该服务

单实体框架

  1. 该实例演示单表增删改查的功能

  2. 在Client项目中添加目录单实体\Domain,右键选择搬运工 -> 实体类 1.png 2.png

  3. 点击增加,选择表demo_基础,点击确定,生成实体类基础X,该类有两个文件组成,参见实体类详细 3.png 4.png 5.png

  4. 添加代码框架,右键选择搬运工 -> 单实体框架,点击选择,选择表demo_基础,点击确认,生成框架文件 6.png 7.png 8.png

  5. 将Win项目设置为启动项目,F5启动调试,登录成功后在主页左侧菜单中点击菜单管理,然后增加菜单单实体,视图名称基础Win,确保和功能主窗口中View标签名相同,成功保存后右下提示需要更新模型,点击更新模型,如下图所示:

    9.png
    增加菜单项

  6. 将菜单授权任何人,关闭并重新启动应用,登录成功后在主页左侧菜单中点击单实体,将显示单表的增删改查窗口

    10.png
    单表增删改查

  7. 将其他Droid iOS 或 Wasm项目设置为启动项目,同样可运行单实体功能 11.png 12.png

一对多框架

  1. 该实例演示一对多父子表增删改查的功能

  2. 在Client项目中添加目录一对多\Domain,右键选择搬运工 -> 实体类,点击增加,选择表demo_父表 demo_大儿 demo_小儿,点击确定,生成三个实体类 13.png

  3. 添加代码框架,右键选择搬运工 -> 一对多框架父实体点击选择demo_父表子实体选择demo_大儿 demo_小儿,将demo_小儿的父主键名称修改为GroupID,点击确认,生成框架文件 14.png 15.png

  4. 单实体框架相同,生成启动项目、添加菜单项(视图名称和主窗口标签名称相同)、菜单授权后,就可打开一对多窗口查看默认功能

    17.png
    添加菜单项并授权
    16.png
    一对多框架

  5. 运行其他平台的App项目,打开一对多查看默认功能

多对多框架

  1. 该实例演示多对多关系表的增删改查功能,用户和角色、权限和角色、角色和用户及权限都是多对多关系,分别以用户、角色、权限为主体实现管理功能。 rbac.png

  2. 在Client项目中添加目录多对多\Domain,右键选择搬运工 -> 实体类,点击增加,选择表demo_角色 demo_用户 demo_权限 demo_角色权限 demo_用户角色,点击确定,生成五个实体类 18.png 19.png

  3. 添加以角色为主体的代码框架,添加目录多对多\角色,右键选择搬运工 -> 多对多框架主实体点击选择demo_角色关联实体选择demo_用户 demo_权限中间实体选择demo_角色权限 demo_用户角色,完善中间实体的外键字段名,确保关联实体中间实体的表顺序对应,点击确认,生成框架文件 20.png 21.png

  4. 添加以权限为主体的代码框架,添加目录多对多\权限,右键选择搬运工 -> 多对多框架主实体点击选择demo_权限关联实体选择demo_角色中间实体选择demo_角色权限,完善中间实体的外键字段名,点击确认 22.png 23.png

  5. 添加以用户为主体的代码框架,添加目录多对多\用户,右键选择搬运工 -> 多对多框架主实体点击选择demo_用户关联实体选择demo_角色中间实体选择demo_用户角色,完善中间实体的外键字段名,点击确认 24.png 25.png

  6. 单实体框架相同,生成启动项目、添加三个菜单项(用户管理 角色管理 权限管理)、菜单授权后,点击更新模型,重启应用即可测试这三个菜单项

    26.png
    添加菜单项并授权
    27.png
    多对多框架

信息
以上三个例子都是通过VS扩展工具中提供的基础框架自动生成的,这只适用于普通场景,个性化需求还得靠自定义实现,VS扩展中的框架通常用来生成单表、一对多、多对多等不同模式的基础结构,然后在此基础上进行修改以满足需求。