EPR类企业管理系统

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


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

实施自定义业务类和参考属性(EF)

在本课程中,您将学习如何从头开始实现业务类。为此,将实施职位业务类。此类将在之前实现的Contact类中使用。您还将学习参考对象自动用户界面构建的基础。

注意

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

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

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using DevExpress.Persistent.Base;
    
    namespace MySolution.Module.BusinessObjects {
        [DefaultClassOptions]
        [DefaultProperty(nameof(Title))]
        public class Position {
            public Position() {
                Contacts = new List<Contact>();
            }
            [Browsable(false)]
            public Int32 ID { get; protected set; }
            public String Title { get; set; }
            public virtual IList<Contact> Contacts { get; set; }
        }
    }
    

    请注意,Contact集合属性被声明为virtual

    注意

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

    • 详细表格标题
    • 列表视图的最左列
    • 查找列表视图(这些视图将在本课程的最后一步中进行说明。)

    有关其他信息,请参阅“数据模型中的数据注释”主题。

    重点

    您可以使用XAF业务对象| 模板库中的EF Business Object项目项模板,用于添加支持IXafEntityObject,IObjectSpaceLink和INotifyPropertyChanged接口的实体,这在许多情况下可能很有用。

  • DbContext中注册新类。编辑BusinessObjects \ MySolutionDbContext.cs文件,如下所示。

    public class MySolutionDbContext : DbContext {
        //...
        public DbSet<Position> Positions { get; set; } 
    }
    
  • Position属性添加到Contact类。下面的代码演示了这一点。

    public class Contact : Person {
        //...
        public virtual Position Position { get; set; } 
    }
    

    联系类现在暴露的位置引用属性。请注意,此属性被声明为virtual

  • 运行WinForms或ASP.NET应用程序。您将看到如何使用指定的数据结构自动生成用户界面。导航控件将包含一个新的Position项,使您可以访问Position对象。请注意,在“联系人详细信息视图”中,已经为Position创建了一个查找编辑器。在此编辑器中,使用一种特殊的View类型,即Lookup List View。通常,此视图只有一列与该类的默认属性相对应。使用查找编辑器,您可以选择当前Contact的Position,并使用来添加新的Position对象。按钮。此外,您还可以通过按住SHIFT CTRL并单击选定的对象来编辑现有的Position对象。

    Tutorial_BMD_Lesson3_1(EF)

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

下一课: 从业务类库(EF)添加类

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