EPR类企业管理系统

在我们现有系统基础上或全新开发,提供定制服务
为您的企业高效快速实施ERP,WMS,MES,CRM管理系统
全面管控物料仓库、销售业务、采购业务、仓库业务
生产过程、质量检验、组织架构、业务报表


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

设置多对多关系(XPO)

在本课程中,您将学习如何设置业务对象之间的关系。为此,将实现Task业务类,并在Contact和Task对象之间设置多对多关系。您还将学习所引用对象的自动用户界面构造基础。

注意

在继续之前,请花一点时间回顾“从业务类库类(XPO)继承”课程。

  • 要将Task业务类添加到应用程序中,可以使用Business Class Library中的Task类。由于需要设置ContactTask对象之间的关系,因此需要自定义Task类的实现。从此类继承并添加Contacts集合属性,如下面的代码所示。

    using DevExpress.ExpressApp.Model;
    // ...
    [DefaultClassOptions]
    [ModelDefault("Caption", "Task")]
    public class DemoTask : Task {
        public DemoTask(Session session): base(session) { }
        [Association("Contact-DemoTask")]
        public XPCollection<Contact> Contacts {
            get {
                return GetCollection<Contact>(nameof(Contacts));
            }
        }
    }
    
    重点

    不要修改上面演示的XPCollection属性声明。操作该集合或在声明中引入任何其他设置可能会导致无法预料的行为。

    在此代码中,AssociationAttribute应用于XPCollection类型的Contacts属性,表示关联的Contacts的集合。设置对象之间的关系时,必须具有“关联”属性。请注意,Contacts属性的getter实现-GetCollection方法-用于返回集合。

    注意

    ModelDefaultAttribute属性,它被应用到DemoTask类,指定了“任务”值标题应用模型的财产BOModel | DemoTask节点。通常,您可以指定应用程序模型的BOModel | XML属性的任何属性。<Class>BOModel | <类别> | 会员| 通过将ModelDefault属性应用到业务类或其成员来<Member>节点。

  • 修改Contact类的实现:将Tasks属性添加为Contact-DemoTask关系的第二部分。请注意,关联属性也必须应用于此属性。下面的代码演示了Contact类实现的代码片段。

    [DefaultClassOptions]
    public class Contact : Person {
        //...
        [Association("Contact-DemoTask")]
        public XPCollection<DemoTask> Tasks {
            get {
                return GetCollection<DemoTask>(nameof(Tasks));
            }
        }
    }
    

    上面的代码将自动生成所需的中间表和关系。

    注意

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

  • 运行WinForms或ASP.NET应用程序。调用联系人详细信息视图任务详细信息视图。将任务添加到联系人对象的“任务”集合,或将联系人添加到任务对象的“联系人”集合。要应用分配,请使用这些集合随附的链接按钮。

    Tutorial_BMD_Lesson5_1

    Tutorial_BMD_Lesson5_1_0

您可以在随XAF一起安装的Main Demo的Contact.csContact.vb)和DemoTask.csDemoTask.vb)文件中查看本课程中演示的代码。该MainDemo应用程序安装在%PUBLIC%\文件\ DevExpress的演示19.2 \组件\ eXpressApp框架\ MainDemo默认。可从http://demos.devexpress.com/XAF/MainDemo/在线获得ASP.NET版本。

下一课: 设置一对多关系(XPO)

相关文章

转载保留此链接,注明出处