DevExpress- XPO入门(1)

XPO(eXpress Persistent Objects)是对象和关系数据库之间的桥梁。就是将面向对象编程所建立的对象在数据库中做一个映射,使之和数据库中的表建立一一对应的关系。使XPO,应用程序无需修改代码就可以兼容多种数据库 (MS Access, MS SQL Server, MS SQL Server CE, MS SQL Azure, MySQL, Oracle, PostgreSql, Firebird, PervasiveSQL, VistaDB, SQL Anywhere, Advantage, DB2, SQLite,Sybase) 。
以访问SQLite数据库为例

步骤1- 引用

DevExpress.Xpo.v18.2.dll
System.Data.SQLite.dll (如果是其他数据库,则引用其他的库)

步骤2 -创建实体对象

 class WorkPiece :XPObject
    {
        public string FirstName;
        public string LastName;
        public WorkPiece(Session session) : base(session) { }
    }

说明:

  • XPO使用Session表示一个数据库的连接

步骤3- 连接数据库

 var ConnectionString = "XpoProvider=SQLite;Data Source=system.db3";
 XpoDefault.DataLayer = XpoDefault.GetDataLayer(ConnectionString,AutoCreateOption.DatabaseAndSchema);

说明:

  • XpoDefault是一个全局设置,后面的数据访问默认都会使用这个全局(底层对应数据提供者的会话)
  • GetDataLayer方法可以根据连接字符连接到特定的数据库
  • GetDataLayer方法第2个参数可以用来自动创建数据库或表
  • 连接字符串也可以使用 SQLiteConnectionProvider.GetConnectionString(“system.db3”)获取。不同的数据库都有对应的ConnectionProvider,例如MSSqlConnectionProvider ,PostgreSqlConnectionProvider

步骤4- 实现对象的CRUD

增加

            WorkPiece p=new WorkPiece(XpoDefault.Session);
            p.FirstName = "guo";
            p.LastName="wushi";
            p.Save();
  • 使用默认的连接(Xpo.Session)完成操作。
  • 每个对象都会自动增加一个OID字段作为主键。

删除

contact.delete();

修改

和新增代码一样,但一个对象的OID(唯一标记)一样,则表示的是修改。

查找

string queryString = "原生SQL语句";
public SelectedData GetEmployeesSimpleData() {
    return session.ExecuteQuery(queryString);
}
  • SelectedData类表示查询的结果集
发布了30 篇原创文章 · 获赞 4 · 访问量 7459

猜你喜欢

转载自blog.csdn.net/guo1wu3shi4/article/details/104577427