EPR类企业管理系统

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


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

如何:为现有数据表生成XPO业务类

Tutorial和其他文档资源中,您学习了如何为XAF应用程序创建业务类。如果您的应用程序中有业务类,则在应用程序的数据库中有数据库表。但是,现实情况是,大多数程序员不是从头开始构建新应用程序,而是维护现有数据库。在这种情况下,他们可以使用XPO数据模型向导为指定的旧数据库生成业务模型声明。请按照以下步骤为将在XAF应用程序中使用的现有数据库生成业务类。

如果您想观看视频而不是逐步学习这些逐步说明,则可以访问我们的YouTube频道中的相应教程:XAF:基于现有数据库创建应用程序

生成一个XPO数据模型

  • 使用DevExpress v 19.2 XAF解决方案向导模板创建新的XAF解决方案。
  • 右键单击模块项目中的BusinessObjects文件夹。选择添加| 新项目。在调用的“添加新项”对话框中,选择位于“ DevExpress”类别中的“ DevExpress ORM数据模型向导”模板。将新项目的名称设置为MySolutionDataModel.xpo,然后单击“添加”。您将看到MySolutionDataModel.xpo项已添加,并且向导对话框被调用。
  • 在调用的向导对话框中,选择“映射到现有数据库”,然后单击“下一步”

    XpoDesigner_LegacyDB_Wizard1

  • 指定到包含目标数据的数据库的连接设置。该向导支持多个数据库系统(MS SQL Server,DB2,MySql,Firebird等)。使用提供者组合框选择所需的数据库类型。请注意,相应的数据库提供程序程序集必须在计算机上的全局程序集缓存(GAC)中注册,否则向导将失败。在此示例中,我们将使用“ Northwind Traders”演示数据库。该数据库随DXperience一起提供,默认情况下安装在%PUBLIC%\ Documents \ DevExpress Demos 19.2 \ Components \ Data \ nwind.mdb中

    XpoDesigner_LegacyDB_Wizard2

    指定连接设置后, 单击“下一步”

  • 在下一步中,向导将显示可映射到持久性类的表的列表。选择要映射到持久对象的表,并为每个表选择将映射到持久对象的属性的列。对于未选中的列,将不会生成持久属性。例如,选择客户订单表。

    XpoDesigner_LegacyDB_Wizard3

  • 单击“下一步”关闭向导。生成的数据模型将在XPO数据模型设计器中显示。

    XpoDesigner_LegacyDB_Designer

    如果要自定义生成的数据模型,请参考“如何:在XPO数据模型设计器中创建业务模型”主题。持久类的名称及其属性与所选表及其列的名称匹配。在当前示例中,表名是复数形式。因此,您可能需要更改类名称(“客户客户”和“订单订单”)。要重命名类或其属性,请在设计器中选择它,然后在“属性”窗口中更改“名称” 。名称已修改的类和属性仍将映射为相应的表和列,作为PersistentAttribute 会自动添加到设计人员生成的代码中。

  • Visual Studio工具栏中,单击“保存”。生成的代码文件将出现在解决方案资源管理器BusinessObjects \ MySolutionDataModelCode文件夹中。

    XpoDesigner_LegacyDB_SolutionExplorer

    注意

    如果您不喜欢与设计人员打交道,而是更喜欢用代码完成所有工作,请创建一个单独的代码文件,并将生成的类复制到其中。然后,删除设计者添加的文件。

在代码中添加特定于XAF的属性

  • 打开Customer.csCustomer.vb)文件。用DefaultClassOptionsAttribute和ImageNameAttribute属性装饰Customer类。结果,客户对象将被添加到导航系统,并且内置库中的图标将与此对象相关联。

    using DevExpress.Persistent.Base;
    // ...
    [DefaultClassOptions, ImageName("BO_Contact")]
    public partial class Customer{
        public Customer(Session session) : base(session) { }
        public Customer() : base(Session.DefaultSession) { }
        public override void AfterConstruction() { base.AfterConstruction(); }
    }
    
  • 打开Order.csOrder.vb)文件。用DefaultClassOptions和ImageName属性装饰Order类。

    using DevExpress.Persistent.Base;
    // ...
    [DefaultClassOptions, ImageName("BO_Order")]
    public partial class Order {
        public Order(Session session) : base(session) { }
        public Order() : base(Session.DefaultSession) { }
        public override void AfterConstruction() { base.AfterConstruction(); }
    }
    

您可以向自动生成的类中添加更多自定义代码(例如,覆盖基类方法)。不要更改带有设计者后缀的文件中的代码-它们包含设计者生成的代码,因此不应手动进行修改。生成的类被声明为partial。设计和自定义类的零件位于不同的文件中。

注意

建议您通过System.ComponentModel.DefaultProperty属性为每个生成的类指定默认属性。在XAF应用程序用户界面中,默认属性被视为人类可读的标识符。

重点

您不能将属性应用于部分类代码中的属性。而是使用设计器(请参阅下一节)。

在设计器中添加特定于XAF的属性

或者,您可以使用设计器来应用属性。聚焦require类或字段,然后在“属性”窗口中指定“自定义属性”设置。

CustomAttributes

指定连接字符串

使用默认的连接字符串生成一个空的XAF应用程序:Data Source =。\ SQLEXPRESS; Initial Catalog = MyApplication; Integrated Security = SSPI; Pooling = false。您应该对其进行更改,以便应用程序使用所需的数据库。在应用程序配置文件中更改连接字符串。您可以从自动创建的BusinessObjects \ MySolutionDataModelCode \ ConnectionHelper.csConnectionHelper.vb)文件中复制有效的连接字符串。

运行应用程序

现在,您可以运行WinForms,ASP.NET和Mobile应用程序以查看结果。这些应用程序完全基于为遗留数据库生成的业务模型。

相关文章

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