EPR类企业管理系统

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


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

供应初始数据(EF)

注意

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

  • 打开位于MySolution.Module项目的“数据库更新”文件夹中的Updater.csUpdater.vb)文件。将以下代码添加到ModuleUpdater.UpdateDatabaseAfterUpdateSchema方法。

    using MySolution.Module.BusinessObjects;
    //...
    
    public class Updater : DevExpress.ExpressApp.Updating.ModuleUpdater {
        //...
            public override void UpdateDatabaseAfterUpdateSchema() {
            base.UpdateDatabaseAfterUpdateSchema();
    
            Contact contactMary = ObjectSpace.FindObject<Contact>(
                CriteriaOperator.Parse("FirstName == 'Mary' && LastName == 'Tellitson'"));
            if (contactMary == null) {
                contactMary = ObjectSpace.CreateObject<Contact>();
                contactMary.FirstName = "Mary";
                contactMary.LastName = "Tellitson";
                contactMary.Email = "tellitson@example.com";
                contactMary.Birthday = new DateTime(1980, 11, 27);
            }
            //...
            ObjectSpace.CommitChanges();
        }
    }
    

    添加上面的代码后,如果不存在Contact对象,则将在应用程序数据库中创建它。

    每次您运行该应用程序时,它都会将应用程序版本与数据库版本进行比较,并查找应用程序或数据库中的更改。如果数据库版本低于应用程序版本,则应用程序将引发XafApplication.DatabaseVersionMismatch事件。此事件由解决方案模板中的WinForms和ASP.NET应用程序处理。当应用程序以调试模式运行时,此事件处理程序将使用内置的数据库更新程序来更新应用程序的数据库。更新数据库架构后,将调用ModuleUpdater.UpdateDatabaseAfterUpdateSchema方法。通过这种方法,可以将所需的业务对象保存到数据库中。

    正如您在上面的代码中看到的那样,eXpressApp Framework(XAF)使用对象空间对象来操纵持久对象(请参阅创建,读取,更新和删除数据)。

    若要指定在BaseObjectSpace.FindObject方法调用中作为参数传递的条件,请使用CriteriaOperator。它的CriteriaOperator.Parse方法转换一个字符串,将一个条件表达式指定为其等效的CriteriaOperator。要了解有关如何指定标准的更多信息,请参阅“建立标准的方式”主题。

  • 运行WinForms或ASP.NET应用程序。在导航控件中选择联系人项。请注意,新联系人“ Mary Tellitson”出现在右侧列表中。

    Tutorial_BMD_Lesson2_5_1

注意

请注意,在“从业务类库类(EF)继承”课程中,数据库初始化程序设置为清除数据库,以防业务模型发生更改。这意味着在业务模型中的下一次更改之后,将删除在运行时创建的所有对象。建议您使用本课中介绍的方法来创建测试目的所需的所有对象。无论数据库如何,它们都将保留在您的应用程序中。

你可以看到本教程的代码在EFDemo.Module | 数据库更新| XAF随附的EF演示(代码优先)演示的Updater.csUpdater.vb)文件。默认情况下,EF Demo(代码优先)应用程序安装在%PUBLIC%\ Documents \ DevExpress Demos 19.2 \ Components \ eXpressApp Framework \ EFDemoCodeFirst中。

下一课: 实现自定义业务类和参考属性(EF)

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