摘要: 开发 XAF 应用程序时,由于重构细节或更改业务需求,您可能需要重命名持久性类或属性。在调试模式下启动的 XAF 应用程序在添加新类或属性后自动在数据库中创建所需的表和列(请参阅业务类与数据库表主题)。但是,重命名数据库中已具有相应表的持久类时,此类将被视为新类,并创建一个新表。因此,旧表保持未使用状态,重命名的类数据将不可用。重命名已在数据库表中具有相应列的持久属性时也是如此。为新属性创建一个新列,并且旧列保持未使用状态。在开发阶段,这些问题并不大 - 您可以手动重命名所需的表/列,甚至创建新数据库。但是,当应用程序已分发给最终用户,并且具有包含生产数据的数据库时,此方法并不适合。本主题介绍一种在更新 XAF 应用程序时自动处理数据库结构更改的方法,并避免手动更新所有最终用户数据库。提供了几种典型的方案,您将遵循其中一种方案或组合它们来处理更复杂的更改: 阅读全文
posted @ 2019-12-19 15:20 code first life 阅读(248) 评论(1) 推荐(3) 编辑
摘要: 通过教程和其他文档来源,您学习了如何为 XAF 应用程序创建业务类。如果应用程序中有业务类,则应用程序的数据库中有数据库表。但是,现实情况是,大多数程序员不是从头开始构建新应用程序,而是维护现有数据库。在这种情况下,他们可以使用 XPO 数据模型向导为指定的旧数据库生成业务模型声明。按照以下步骤为要在 XAF 应用程序中使用的现有数据库生成业务类。 阅读全文
posted @ 2019-12-19 15:20 code first life 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 本主题演示如何实现具有文件数据属性和文件集合属性的业务部门类。为此,将实现用于存储和管理员工简历信息的"简历"类。它有三个属性:文件、联系人和组合。File 属性提供一个文件,联系人属性包含对联系人类的引用,并且项目组合属性返回员工文件的集合。 阅读全文
posted @ 2019-12-19 15:19 code first life 阅读(281) 评论(0) 推荐(3) 编辑
摘要: XAF 随业务类库一起提供,该库包含许多可供在应用程序中使用的持续类。所有这些类都派生自在同一库中声明的 BaseObject 基持久性类。这是推荐使用功能丰富的持久性类。但是,在某些情况下,它可能不符合您的要求。在这种情况下,可以使用 XPO 提供的基本持久性类之一来实现自定义类。本主题介绍实现自定义基持久性类所需的步骤,以确保它在整个 eXpressApp 框架中按预期运行。如果不需要实现自定义类,并且希望使用 XPO 提供的基础类之一,请参阅基本持久性类帮助主题。 阅读全文
posted @ 2019-12-19 15:19 code first life 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 使用 XAF,您可以从头开始构建新应用程序或维护现有数据库。"如何:为现有数据表生成 XPO 业务类"主题介绍如何使用设计时向导,该向导同时为指定数据库中的一个或多个数据表生成业务类。此外,现有数据库可以包含需要在 XAF 应用程序的列表视图、分析和报表中访问的视图(存储的查询)。如果数据库视图具有键列,则可以使用与映射到常规表相同的方法将持久类映射到该列。 阅读全文
posted @ 2019-12-19 15:18 code first life 阅读(163) 评论(0) 推荐(3) 编辑
摘要: 设计业务类时,常见的任务是确保使用默认属性值初始化新创建的业务对象。本主题说明如何初始化不同类型的属性。例如,将实现联系人业务类。创建"联系人"对象后,其属性将用默认值初始化。 阅读全文
posted @ 2019-12-19 15:18 code first life 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 此示例演示如何填充和显示未绑定到数据库的对象(非持久性对象)的列表。此示例中将创建一个存储书籍列表的示例应用程序。在弹出窗口中显示重复书籍列表的操作将添加到此应用程序。 阅读全文
posted @ 2019-12-19 15:17 code first life 阅读(220) 评论(0) 推荐(3) 编辑
摘要: 在本主题中,您将学习如何在 XAF 中使用 XPO 的转换功能。当您需要在单个查询中合并基类和派生类时,它很有用。 阅读全文
posted @ 2019-12-19 15:17 code first life 阅读(304) 评论(0) 推荐(0) 编辑