In this lesson, you will learn how to implement business classes from scratch. For this purpose, the Department and Position business classes will be implemented. These classes will be used in the Contact class, implemented previously. You will also learn the basics of automatic user interface construction for referenced objects.

在本课中,您将学习如何从头开始实现业务类。为此,将实施"部"和"职位"业务课程。这些类将在以前实现的"联系人"类中使用。您还将学习引用对象的自动用户界面构造基础知识。

Note

Before proceeding, take a moment to review the Inherit from the Business Class Library Class (XPO) lesson.

注意
在继续之前,请花点时间复习从商务舱库类 (XPO) 课程继承。

  • Add the following Department and Position persistent classes to the Contact.cs (Contact.vb) file.

  • 将以下部门和职位持久性类添加到Contact.cs (Contact.vb) 文件中。

    [DefaultClassOptions]
    [System.ComponentModel.DefaultProperty(nameof(Title))]
    public class Department : BaseObject {
    public Department(Session session) : base(session) { }
    private string title;
    public string Title {
    get { return title; }
    set { SetPropertyValue(nameof(Title), ref title, value); }
    }
    private string office;
    public string Office {
    get { return office; }
    set { SetPropertyValue(nameof(Office), ref office, value); }
    }
    }
    [DefaultClassOptions]
    [System.ComponentModel.DefaultProperty(nameof(Title))]
    public class Position : BaseObject {
    public Position(Session session) : base(session) { }
    private string title;
    public string Title {
    get { return title; }
    set { SetPropertyValue(nameof(Title), ref title, value); }
    }
    }

    These new classes are persistent, as they are BaseObject class descendants.

这些新类是持久性的,因为它们是 BaseObject 类后代。

Note

The DefaultProperty attribute is used in the code above. This attribute is used to specify the default property of the class. You can specify the most descriptive property of your class in the DefaultProperty attribute, and its values will be displayed in the following.

注意
DefaultProperty 属性用于上述代码。此属性用于指定类的默认属性。您可以在 DefaultProperty 属性中指定类最具描述性的属性,其值将显示在以下内容中。

  • Detail form captions
  • The leftmost column of a List View
  • The Lookup List Views (These Views will be explained in the last step of this lesson.)
  • 详细信息表单标题
  • 列表视图的最左侧列
  • 查找列表视图(这些视图将在本课的最后一步中介绍。

Refer to the Data Annotations in Data Model topic for additional information.

有关详细信息,请参阅数据模型中的数据注释主题。

  • Add the Department and Position properties to the Contact class. The following code demonstrates this.

  • 将"部门和位置"属性添加到"联系人"类。以下代码演示了这一点。

 [DefaultClassOptions]
public class Contact : Person {
//...
private Department department;
public Department Department {
get {return department;}
set {SetPropertyValue(nameof(Department), ref department, value);}
}
private Position position;
public Position Position {
get {return position;}
set {SetPropertyValue(nameof(Position), ref position, value);}
}
//...
}

The Contact class now exposes the Position and Department reference properties.

联系人类现在公开"位置"和"部门"引用属性。

Note

If you have CodeRush

注意

如果您有代码CodeRush

  • installed, you can use Code Templates when implementing business classes. Using Code Templates decreases code creation time, because it helps avoid having to type the entire code manually and allows you to create regular code sections with only a few keystrokes. To learn about the built-in Code Templates for eXpress Persistent Objects, refer to the XPO and XAF Templates topic.

    在实现业务类时,可以使用代码模板。使用代码模板可缩短代码创建时间,因为它有助于避免手动键入整个代码,并允许您只需几个击键即可创建常规代码部分。要了解 eXpress 持久对象的内置代码模板,请参阅 XPO 和 XAF 模板主题。

  • Run the WinForms or ASP.NET application. You will see how the user interface is automatically generated using the specified data structures. The navigation control will contain new Department and Position items, which will allow you to access Department and Position objects. Note that in the Contact Detail View, a lookup editor has been created for Department and Position. In this editor, a special type of View, Lookup List View, is used. Typically, this View has a single column corresponding to the class' default property. Using the lookup editor, you can select the required Department (Position) for the current Contact, and add new Department (Position) objects using the New button. In addition, you will also be able to edit existing Department (Position) objects by holding down SHIFT+CTRL and clicking the selected object.

  • 运行 WinForms 或ASP.NET应用程序。您将看到如何使用指定的数据结构自动生成用户界面。导航控件将包含新的"部门和位置"项,这将允许您访问"部门和定位"对象。请注意,在"联系人详细信息"视图中,已为部门和职位创建了查找编辑器。在此编辑器中,使用特殊类型的视图"查找列表视图"。通常,此视图具有对应于类的默认属性的单个列。使用查找编辑器,可以为当前联系人选择所需的部门(位置),并使用"新建"按钮添加新的"部门(位置)"对象。此外,您还可以通过按住 SHIFT_CTRL 并单击所选对象来编辑现有部门(位置)对象。

You can see the code demonstrated in this lesson in the MySolution.Module | Business Objects | Contact.cs (Contact.vb) file of the Main Demo installed with XAF. The MainDemo application is installed in %PUBLIC%\Documents\DevExpress Demos 19.2\Components\eXpressApp Framework\MainDemo by default. The ASP.NET version is available online at http://demos.devexpress.com/XAF/MainDemo/

您可以在 MySolution.模块中看到本课中演示的代码。业务对象 |Contact.cs (Contact.vb) 文件的主演示安装与 XAF.默认情况下,主演示应用程序安装在 %PUBLIC%\Documents\DevExpress Demos 19.2\Components\eXpressApp Framework\MainDemo中。ASP.NET版本可在 http://demos.devexpress.com/XAF/MainDemo/ 在线获取

.

Implement Custom Business Classes and Reference Properties 实现自定义业务类和引用属性(XPO)的更多相关文章

  1. Implement Custom Business Classes and Reference Properties实现自定义业务类和引用属性(EF)

    In this lesson, you will learn how to implement business classes from scratch. For this purpose, the ...

  2. How to: Handle Renamings and Deletions of Business Classes and their Properties 如何:处理业务类及其属性的重命名和删除

    When developing an XAF application, you may be required to rename a persistent class or property due ...

  3. How to: Generate XPO Business Classes for Existing Data Tables 如何:为现有数据表生成 XPO 业务类

    From the Tutorial and other documentation sources, you learned how to create business classes for yo ...

  4. Implement Dependent Reference Properties 实现从属引用属性 (XPO)

    In this lesson, you will learn how to implement properties whose values can depend on other properti ...

  5. Implement Dependent Reference Properties实现依赖引用属性 (EF)

    In this lesson, you will learn how to implement properties whose values can depend on other properti ...

  6. [Tailwind] Create Custom Utility Classes in Tailwind

    In this lesson, we learn how to generate custom utility classes in tailwind. We add new properties t ...

  7. properties文件读写工具类

    java代码: import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; ...

  8. Implement Custom Cache Dependencies in ASP.NET 1.x

    Code download available at:CuttingEdge0407.exe(128 KB)   Contents What's a Cache Dependency, Anyway? ...

  9. [Tailwind] Extending Tailwind with Responsive Custom Utility Classes

    You are able to extend the custom css with hover, focus, group-hover, responsive variants class in t ...

随机推荐

  1. 对numpy.meshgrid()理解

    一句话解释numpy.meshgrid()——生成网格点坐标矩阵.关键词:网格点,坐标矩阵 网格点是什么?坐标矩阵又是什么鬼?看个图就明白了: 图中,每个交叉点都是网格点,描述这些网格点的坐标的矩阵, ...

  2. 基于Casbin实现ABAC

    最近同事在研究Casbin的权限设计,我们主要是考虑使用ABAC基于属性的访问控制,Casbin给的示例不多,于是自己写了几个示例. 首先我们看看提到ABAC时,一般描述如下: ABAC被一些人称为是 ...

  3. 指定节点滚动到屏幕中间的js

    父节点的class是slimScrollDiv 子节点的class是fa-warning 执行这个js document.getElementsByClassName("slimScroll ...

  4. Go-for循环

    一.第一种情况(死循环) package main import "fmt" func main() { for{ fmt.Println("fuck") } ...

  5. CSS学习笔记-盒子阴影及文字阴影

    盒子阴影:    1.格式:        box-shadow:h-shadow v-shadow blur spread color insert;        box-shadow:水平偏移 ...

  6. 从系统学Android--2.5Activity启动模式

    本系列文章目录:更多精品文章分类 本系列持续更新中.... Activity 的启动模式一共有四种,分别是:standard.singleTop.singleTask.singleInstance . ...

  7. Python 读取照片的信息:拍摄时间、拍摄设备、经纬度等,以及根据经纬度通过百度地图API获取位置

    通过第三方库exifread读取照片信息.exifread官网:https://pypi.org/project/ExifRead/ 一.安装exifreadpip install exifread ...

  8. 中缀表达式转换为后缀表达式(python实现)

    中缀表示式转换为后缀表达式 需要一个存放操作符的栈op_stack,输出结果的列表output 步骤: 从左到右遍历表达式: 1. 若是数字,直接加入到output 2. 若是操作符,比较该操作符和o ...

  9. SSH远程管理

    目录 SSH远程管理 ssh功能 SSH相关命令 Xshell连接不上虚拟机 scp命令 SSH验证方式 优化 免交互expect[扩展] 免交互sshpass[扩展] 简易跳板机 小结 SSH远程管 ...

  10. 利用phpqrcode二维码生成类库合成带logo的二维码并且用合成的二维码生成海报(二)

    前期准备 引入phpqrcode类库(下载地址:https://download.csdn.net/download/weixin_37557729/11891240:支持彩色二维码的下载地址:htt ...