DevExpress- XPO入门(1)

独自空忆成欢 提交于 2020-03-08 09:36:13

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类表示查询的结果集
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!