EPR类企业管理系统

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


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

设置一对多关系(EF)

在本课程中,您将学习如何在业务对象之间设置一对多关系。的联系部门业务对象将由一个一对多的关系有关。然后,您将学习参考对象自动用户界面构建的基础。

  • 如从业务类库类(EF)的继承课程中所示,添加Department类。将自动生成的代码替换为以下内容。

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using DevExpress.Persistent.Base;
    
    namespace MySolution.Module.BusinessObjects {
        [DefaultClassOptions]
        [DefaultProperty(nameof(Title))]
        public class Department {
            [Browsable(false)]
            public Int32 ID { get; protected set; }
            public String Title { get; set; }
            public String Office { get; set; }
        }
    }
    
  • 在DbContext中注册Department类。编辑BusinessObjects \ MySolutionDbContext.cs文件,如下所示。

    public class MySolutionDbContext : DbContext {
        //...
        public DbSet<Department> Departments { get; set; }
    }
    
  • 若要实现Department-Contact关系的“一个”部分,请将虚拟的Department属性添加到Contact类。

    public class Contact : Person {
        //...
        public virtual Department Department { get; set; } 
    }
    
  • 要实现Department-Contact关系的“许多”部分,请将Contacts属性添加到Department类,然后在构造函数中对其进行初始化。

    public class Department {
        public Department() {
            Contacts = new List<Contact>();
        }
        //...
        public virtual IList<Contact> Contacts { get; set; }
    }
    
  • 运行WinForms或ASP.NET应用程序。调用Department对象的局部视图。您可以看到“联系人”组。要将对象添加到“联系人”集合中,请使用此选项卡中的“新建”button_new)或“链接”link_btn)按钮。“链接”按钮使您可以添加对现有Contact对象的引用。

    Tutorial_BMD_Lesson6_1

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

提示

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

您可以在MySolution.Module中查看本课程中演示的代码。数据| XAF附带的EF演示(代码优先)的Contact.csContact.vb)和Department.csDepartment.vb)文件。默认情况下,EF Demo(代码优先)应用程序安装在%PUBLIC%\ Documents \ DevExpress Demos 19.2 \ Components \ eXpressApp Framework \ EFDemoCodeFirst中。

下一课: 创建对象(EF)后初始化属性

相关文章

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