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图纸属性的读取
- 下一篇: Mysql迁移到Postgresql