代码改变世界

XPO学习(1)----第一个基于XPO的 数据感知应用程序

2011-10-17 16:34  OOA  阅读(647)  评论(0编辑  收藏  举报

声明:XPO是我第一次接触,本人亦没有什么资深的项目经验,对软件开发也是一知半解,有很多不懂的地方,希望能向前辈讨教。 以下是我学习XAF过程的分享;

XPO学习(1)----第一个基于XPO的 数据感知应用程序

任务:

创建一个简单的应用程序,实现客户信息的录入和查询。

解决方案:

当你使用XPO,你首先要做的就是要定义一个持久类(persistent object class).持久的对象将被存储为数据库表中的记录,并为我们生成表关系;类的属性将被存储为字段。我们只要定义个持久化对象的类,数据库、表、字段、关系 都会为我们自动创建。

通过XPO提供的模板,完成这个任务显得就格外简单了。步骤:

 1.新建一个项目窗体应用程序“Lession1”

2.添加Persistent Object 新项,命名为“Customer”

这个模板为我们自动生成了一个继承自XPObject类,还有默认的构造方法和一个对象初始化方法(AfterConstrucion()方法);单个的持久化对象(也就是这类的实例),将被存放到“Customer”表中。

  

using System;
using DevExpress.Xpo;

namespace Lession1
{

public class Customer : XPObject
{


public Customer()
: base()
{
// This constructor is used when an object is loaded from a persistent storage.
// Do not place any code here.
}

public Customer(Session session)
: base(session)
{
// This constructor is used when an object is loaded from a persistent storage.
// Do not place any code here.
}

public override void AfterConstruction()
{
base.AfterConstruction();
// Place here your initialization code.
}
}

}

note:在我们添加”Customer.cs“的时候,自动为我们引用了两个名称空间:DevExpress.Data.v10.1和DevExpress.Xpo.v10.1

3.向Cusomter类添加属性。

    public class Customer : XPObject
{
public string Name;
public int Age;
     ....(略)

这里只是添加了两个公有字段,只是为了简化代码,以防干扰学习。后面将使用属性。

4.向Form中添加XPColleciton 并设置ObjectClassInfo属性。

向From1中拖拽一个XPColleciton控件;

然后设置它的ObjectClassInfo 属性,选择我们建的Customer.

(这时,你会发现没有Customer,生成下你的项目,就出现了;原因:Persistent objects are usually retrieved from a database using the XPCollection or XPView. So, after we have declared the Customer class, it's necessary to rebuild our solution.)

5、为程序添加一些数据:代码如下:

        private void Form1_Load(object sender, EventArgs e)
{
Customer cm = new Customer();
cm.Name = "John";
cm.Age = 21;
xpCollection1.Add(cm);

cm = new Customer();
cm.Name = "Bob";
cm.Age = 37;
xpCollection1.Add(cm);

}


6.添加一个Grid ;并把XPColleciton 作为它的datasource.

7.启动应用程序。

修改一个oid为3,4 的Name,然后重新启动应用程序。ok,3和4的Name被修改了,单我们没写修改数据的任何操作数据库的代码。太好了!(^_^)

结束语:

我们创建了一个简单的应用程序,实现了浏览和修改客户信息的功能。是在bin目录下有个acces的数据库,这就是为我们自动生成的项目数据库。