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的数据库,这就是为我们自动生成的项目数据库。