教程 1 - 使用 XPO 的第一个数据感知应用程序
来源:互联网 发布:双十一数据2017 编辑:程序博客网 时间:2024/05/16 21:16
DevExpress ORM Tool > DevExpress ORM Tool > Getting Started > Tutorial 1 - Your First Data-Aware Application with XPO
在本课程中,将引导您创建一个简单的 WinForm 应用程序,可以在其中输入和查看customer(顾客)的详情。
秀出来The complete sample project is available in the DevExpress Code Examples database at http://www.devexpress.com/example=E4555. Depending on the target platform type (ASP.NET, WinForms, etc.), you can either run this example online or download an auto-executable sample.
创建持久化对象
使用 eXpress Persistent Objects (XPO) 需要做的第一件事情是定义持久化对象类。持久化对象被存储为数据库表中的记录并且封装了所有的关系。类的属性作为字段值存储至记录之中,并且持久化对象的集合相当于数据表。所需要做的是定义持久化对象类,并且 XPO 会自动生成数据库和所需要的表结构。 XPO 提供了 Data Model Designer(数据模型设计器)以简化持久化类的创建。
启动新的 Windows 窗体应用程序项目。可以使用标准的 Windows 窗体应用程序 项目模板。可以在设计器中(Model First 方法) 或使用代码 (Code First 方法)创建持久化类.。Model First 建议适用于初学者。
Model First
- 在 Project 菜单中点击 Add New Item 。显示 Add New Item 对话框。
在 DevExpress 目录中,选择 DXperience ORM Data Model Wizard 模板并点击 Add。
在弹出的数据模型向导中,选择 Create a new database 并点击 Next。
指定数据库连接设置并点击 next。在本课中,通过 Windows Authentication 访问 Microsoft SQL Server 的本地实例,并且使用 XpoTutorial1 数据库。
- 点击 Finish 完成向导。XPO Data Model Designer 将会打开。
- 在空白的设计器表现右键单击并选择 Properties。在弹出的 属性窗口中,指定持久化类的命名空间,例如,XpoTutorial1.DataModel。
添加新的持久化类,从工具栏上拖拽 XpObject 项目到设计器。
要指定新类的名称,在方框头部双击 XpObject1 文本并修改为 Customer,或者在弹出的属性窗口中,修改对象的名称的 Name 属性。
要添加 Name 持久化属性,从工具栏中拖拽 Field 项目并拖放到 Customer 之上。重命名新添加的字段为 Name。
以相同的方式,添加 Age 属性。通过属性窗口修改它的 Column Type 为 UInt16。
- 在设计器中保存改变。
设计器已经创建了 Customer 类的声明,它继承于 XPObject,带有默认的构造函数与对象初始化方法。个体持久化对象 (类的实例),将作为记录存储至 "Customer" 表中,同时类属性(Name 和 Age) 映射到表的字段值。
Code First
作为使用设计器的另外一种选择,可以编写代码手动添加持久化类。以下的 Customer 类代码等同于设计器的实现。
<span style="font-family:SimSun;">using DevExpress.Xpo;// ... public partial class Customer : XPObject { public Customer(Session session) : base(session) { } public override void AfterConstruction() { base.AfterConstruction(); } string fName; public string Name { get { return fName; } set { SetPropertyValue<string>("Name", ref fName, value); } } ushort fAge; public ushort Age { get { return fAge; } set { SetPropertyValue<short>("Age", ref fAge, value); } }}</span>
可以使用 DXperience v14.1 ORM Persistent Object 工程项目模板简化此类的创建。该模板创建 XPObject 的派生类并在项目中添加必要的程序集的引用。
通常使用 XPCollection 或 XPView 从数据库中获取持久化对象。从工具栏上拖拽 XPCollection 组件并放置到窗体之上。使用默认的 Form1.cs(Form1.vb) 窗体,或者通过 DXperience v14.1 Form 模板添加 XtraForm 以保持与 XtraGrid 控件一直的外观。日后将会使用。
下一步,指定持久化类至集合的 XPCollection.ObjectClassInfo 属性。如果在下拉窗口中没有该类,重新编译项目并再试。
从工具栏中拖拽 Session 组件并放置至窗体之上。使用属性窗口,将其指定至 XPBaseCollection.Session 属性。
XPCollection 可以绑定至可视化控件,因为它实现了标准的 .NET IBindingList and ITypedList 接口。添加 GridControl 控件到窗体上并且指定表格的GridControl.DataSource 属性为 xpCollection1。
private void XtraForm1_Load(object sender, EventArgs e) { if (xpCollection1.Count == 0) { var customer1 = new Customer(session1); customer1.Name = "John"; customer1.Age = 21; customer1.Save(); xpCollection1.Add(customer1); var customer2 = new Customer(session1); customer2.Name = "Bob"; customer2.Age = 37; customer2.Save(); xpCollection1.Add(customer2); }}
using DevExpress.Xpo.DB;// ... [STAThread]static void Main() { ConnectionHelper.Connect(AutoCreateOption.DatabaseAndSchema); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); DevExpress.Skins.SkinManager.EnableFormSkins(); Application.Run(new XtraForm1());}
Code First
using DevExpress.Xpo;using DevExpress.Xpo.DB;// ... [STAThread]static void Main() { public const string ConnectionString = @"XpoProvider=MSSqlServer;data source=(local);integrated security=SSPI;initial catalog=XpoTutorial1"; XpoDefault.DataLayer = XpoDefault.GetDataLayer(ConnectionString, AutoCreateOption.DatabaseAndSchema); // … }
运行项目。XPO 为持久化对象自动生成数据库。如果数据库不存在,XPO 创建它。用户可以在表格中查看和编辑数据。无需编写任何代码来保存数据:所有的更改都将自动持久化。下图显示结果。
- 创建简单的数据感知应用程序,它可以使最终用户查看和编辑 customer 详情 (name 和 age) 。数据存储在 MS SQL Server 数据库。
- 声明 Customer 类,其实例表示为 Customer 表的记录。XPO 会自动生成数据库。
- 添加新记录并保存至 Customer 表。每个记录代表着 Customer 对象。它的公共属性表示表中的字段。
- 最终用户可以通过 XtraGrid's data navigator (显示在表格的底部)添加新记录。
- 教程 1 - 使用 XPO 的第一个数据感知应用程序
- 使用Eclipse开发的第一个应用程序
- (1)第一个应用程序
- Windows桌面应用程序(1-1st) 使用DirectX创建您的第一个Windows应用程序
- DynamicsAX 多个xpo的import
- 开始使用您的第一个 Worklight 应用程序
- 使用struts2技术编写的第一个应用程序
- 使用NetBeans开发第一个手机应用程序
- flex开发(1)---创建您的第一个应用程序
- 开发您的第一个 Eclipse RCP 应用程序(1/12)
- 内核怎样启动第一个应用程序--韦东山教程学习
- 你的第一个struts应用程序
- 开始你的第一个struts应用程序
- 开始你的第一个struts应用程序
- 创建第一个简单的Silverlight应用程序
- 创建第一个简单的Silverlight应用程序
- 创建您的第一个 C# 应用程序
- 我的第一个C#应用程序
- 各种异常问题解决
- Hack7-在Canvas上绘制动画效果
- Failed to load platform plugin "windows"
- 选夫婿1 (简单题)
- sizeof函数和strlen函数
- 教程 1 - 使用 XPO 的第一个数据感知应用程序
- 排序
- c语言中动态内存申请与释放的简单理解
- 图案打印 (好坑的输出,注意最后一个*后就没有空格了,PE了三遍)
- 如何移植iptables1.4.9到Tiny6410_Linux2.6.38内核
- 科技论文中图片的处理方法
- mdadm详细使用手册
- 特征提取代码总结
- ubuntu10.04挂载exfat格式u盘