• Set a One-to-Many Relationship设置一对多关系 (XPO)


    In this lesson, you will learn how to set a one-to-many relationship between business objects. The Contact and Department business objects will be related by a one-to-many relationship. For this purpose, the Contacts property will be added to the Department class representing the "Many" part of the relationship. You will then learn the basics of automatic user interface construction for referenced objects.

    在本课中,您将学习如何设置业务对象之间的一对多关系。联系人和部门业务对象将通过一对多关系关联。为此,联系人属性将添加到表示关系的"许多"部分的"部门"类中。然后,您将学习引用对象的自动用户界面构造的基础知识。许多关系 (XPO)

    Note

    Before proceeding, take a moment to review the following lessons.

    注意
    在继续之前,请花点时间复习以下课程。

    • Inherit from the Business Class Library Class (XPO)
    • Implement Custom Business Classes and Reference Properties (XPO)
    • Set a Many-to-Many Relationship (XPO)
    • To implement the "One" part of the Department-Contacts relationship, decorate the Contact class' Department property with the AssociationAttribute.

    • 从商务舱库类 (XPO) 继承

    • 实现自定义业务类和参考属性 (XPO)

    • 设置多对多关系 (XPO)

    • 要实现部门-联系人关系的"One"部分,请使用"关联属性"装饰联系人类的部门属性。

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

      For information on the Association attribute, refer to the Set a Many-to-Many Relationship (XPO) lesson.

              有关关联属性的信息,请参阅设置多对多关系 (XPO) 课程。

    • To implement the "Many" part of the Department-Contacts relationship, add the Contacts property to the Department class and decorate this property with the Association attribute.

    • 要实现部门-联系人关系的"许多"部分,将"联系人"属性添加到"部门"类,并使用"关联"属性装饰此属性。

      public class Department : BaseObject {
          //...
          [Association("Department-Contacts")]
          public XPCollection<Contact> Contacts {
              get {
                  return GetCollection<Contact>(nameof(Contacts));
              }
          }
      }
      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.

    • Run the WinForms or ASP.NET application. Invoke a Detail View for a Department object (see the previous lesson “Set a Many-to-Many Relationship (XPO)”). You can see the Contacts group. To add objects to the Contacts collection, use the New (button_new) or Link (link_btn) buttons in this tab. The Link button allows for the adding of references to existing Contact objects.

    • 在实现业务类时,可以使用代码模板。使用代码模板可缩短代码创建时间,因为它有助于避免手动键入整个代码,并允许您只需几个击键即可创建常规代码部分。要了解 eXpress 持久对象的内置代码模板,请参阅 XPO 和 XAF 模板主题。
    • 运行 WinForms 或ASP.NET应用程序。调用部门对象的详细信息视图(请参阅上一课"设置多对多关系 (XPO)")。您可以看到"联系人"组。要将对象添加到"联系人"集合,请使用此选项卡中的"新建(button_new)"或"链接(link_btn)"按钮。"链接"按钮允许添加对现有联系人对象的引用。

      Tutorial_BMD_Lesson6_1

      To remove a reference to an object from this collection, use the Unlink (unlink_img) button.

              要从此集合中删除对对象的引用,请使用"取消链接(unlink_img)"按钮。

    Tip

    提示

    If you create a new Department and then create a new Contact in the Contacts collection, an associated Department is not immediately visible in the Detail View of the newly created Contact. The link between these objects is added later, when you save the Contact. You can change this behavior using the XafApplication.LinkNewObjectToParentImmediately property. When it is set to true, the link will be created and saved immediately after you click New.

    如果创建新的"部门",然后在"联系人"集合中创建新的"联系人",则关联部门不会立即在新创建的"联系人"的"详细信息"视图中显示。保存联系人时,稍后将添加这些对象之间的链接。您可以使用 XafApplication.LinkNewObjectParentParent立即属性更改此行为。设置为 true 时,链接将在单击"新建"后立即创建并保存。

    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%DocumentsDevExpress Demos 19.2ComponentseXpressApp FrameworkMainDemo by default. The ASP.NET version is available online at http://demos.devexpress.com/XAF/MainDemo/

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

    .

    .

  • 相关阅读:
    基于jquery自己写滑动门(通用版)
    这一年,做为asp.net程序员我合格吗?
    基于jquery的滚动条滚动固定div(附Demo)
    asp.net获取数据随机显示(原创)
    为昨天一篇博文【asp.net,对于一个有点经验的猴子,我的要求高么?】做点解释
    2012年总结,2013年更精彩。
    放大镜
    be strong
    模拟凡客导航
    Ajax中Get请求与Post请求的区别(转载)
  • 原文地址:https://www.cnblogs.com/foreachlife/p/One-to-ManyRelationship.html
Copyright © 2020-2023  润新知