DevExpress XPO使用WCF数据源
XPO(eXpress Persistent Objects)DevExpress开源的ORM框架,是对象和关系数据库之间的桥梁。使用XPO可以大大简化对数据库操作。
XPO还支持WCF - 使用IDataStore, ICachedDataStore和ISerializableObjectLayer 提供者, 这样就不直接连接数据库,而可通过WCF services获取数据对象。
例如:在企业环境下,核心数据库并不希望对不同的业务系统开放。此时使用编写一个WCF服务作为应用服务器,就可以避免数据库直接暴露出来,同时还可以在应用服务器端实现统一的认证管理。
具体实现:
步骤1:编写WCF服务
创建一个“WCF服务应用程序”,引用DevExpress.Data.V18.2和DevExpress.Xpo.V18.2,修改.svc文件。
public class ExamWcfService : DataStoreService{public static IDataStore DataStore;static ExamWcfService(){string dbs = ConfigurationManager.AppSettings["dbserver"];string user = ConfigurationManager.AppSettings["user"];string password = ConfigurationManager.AppSettings["password"];string db = ConfigurationManager.AppSettings["db"];string connectionString = MSSqlConnectionProvider.GetConnectionString(dbs,user,password,db);DataStore = XpoDefault.GetConnectionProvider(connectionString, AutoCreateOption.SchemaOnly);}public ExamWcfService() : base(DataStore){}}说明:
(1)从DataStoreService继承。
(2)编译后,将WCF服务应用部署到IIS上。
(3)此时WCF服务作为数据提供者。
步骤2:创建一个类库项目,用于产生XPO实体类
引用DevExpress.Data.V18.2和DevExpress.Xpo.V18.2。
利用ORM Data Model向导,直接根据数据表产生XPO实体类。编译产生实体类DLL文件。
步骤3:编写客户端,从WCF获取数据(XPO对象)
引用步骤2创建的实体类DLL,引用DevExpress.Data.V18.2和DevExpress.Xpo.V18.2。
string connstr = "http://10.127.0.15:8080/wcf/ExamWcfService.svc";XpoDefault.DataLayer = XpoDefault.GetDataLayer(connstr,AutoCreateOption.SchemaOnly);Customer cus = new Customer(XpoDefault.Session);cus.CompanyName = "scetc";cus.Save();using (UnitOfWork uow = new UnitOfWork()){using (XPCollection<Admins> customers = new XPCollection<Admins>(uow)){foreach (Admins customer in customers){Console.WriteLine("Company Name = {0}; ContactName = {1}", customer.Admin, customer.Classroom);}}}说明:传统XPO的数据提供者为不同类型的数据库。如访问MSSQL服务器的连接字符串写法
string connstr=MSSqlConnectionProvider.GetConnectionString(sqlserverip,username,password,db);
总结
以上是生活随笔为你收集整理的DevExpress XPO使用WCF数据源的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Dwg图纸属性的读取
- 下一篇: Rest标准