在WCF服務(wù)中我一直是使用ADO.NET 實體模型來連接數(shù)據(jù)和操作數(shù)據(jù)庫的,剛開始用時覺得比較新鮮,因為linq與sql語句的基本操作都有對應(yīng)的使用方法,而且能直接獲取到數(shù)據(jù)表的模型,大多情況下還是比較好用的。不過偶爾的時候要涉及到多表關(guān)聯(lián)的復(fù)雜的sql語句的查詢,寫linq就比較麻煩了,要使用分步進行,就是先用linq查出一個條件,賦值給一個變量,然后再將這個變量作為下一個linq的查詢條件,不大利于修改sql語句的變動。
因為本人是比較喜歡用sql語句的,即使是在使用linq時,也是現(xiàn)將sql語句寫好,然后再轉(zhuǎn)換的。所以我也會在項目中少量的使用Microsoft.Practices.EnterpriseLibrary進行連接,直接使用sql語句增刪改查等。
Microsoft.Practices.EnterpriseLibrary生成的配置文件中的連接字符串格式和位置與ADO.NET 實體模型是一樣的,所以也便于對配置文件的維護。下面看一下在WCF服務(wù)應(yīng)用程序中如何使用。其實和前面寫過的(http://blog.csdn.net/yysyangyangyangshan/article/details/8488791)用法是一樣的,再次回顧一下吧。
首先Microsoft.Practices.EnterpriseLibrary的下載安裝就不說了,直接搜索下載,新的舊的都可以,關(guān)鍵是在配置中把版本寫對就可以了。
直接看web.config的配置
<?xml version="1.0" encoding="utf-8"?>
<configuration><configSections><!--添加配置企業(yè)庫(1)--><section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings,Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/></configSections><!--添加配置企業(yè)庫(2)--><dataConfiguration defaultDatabase="MyConnectionString"/><system.web><compilation debug="true" targetFramework="4.0" /></system.web><system.serviceModel><behaviors><serviceBehaviors><behavior><!-- 為避免泄漏元數(shù)據(jù)信息,請在部署前將以下值設(shè)置為 false 并刪除上面的元數(shù)據(jù)終結(jié)點 --><serviceMetadata httpGetEnabled="true"/><!-- 要接收故障異常詳細信息以進行調(diào)試,請將以下值設(shè)置為 true。在部署前設(shè)置為 false 以避免泄漏異常信息 --><serviceDebug includeExceptionDetailInFaults="false"/></behavior></serviceBehaviors></behaviors><serviceHostingEnvironment multipleSiteBindingsEnabled="true" /></system.serviceModel><system.webServer><modules runAllManagedModulesForAllRequests="true"/></system.webServer><connectionStrings><add name="MyConnectionString" connectionString="DATA SOURCE=數(shù)據(jù)庫名;Persist Security Info=True;User ID=用戶名;Password=密碼;Unicode=True" providerName="System.Data.OracleClient"/></connectionStrings></configuration>
其余用法都一樣
執(zhí)行的方法:
public class OracleSqlHelper{private static Database db = null;public static DataSet GetDataTable(string commandText){try{DataSet resultDataSet = null;db = DatabaseFactory.CreateDatabase();//建立數(shù)據(jù)庫連接resultDataSet = db.ExecuteDataSet(CommandType.Text, commandText);//執(zhí)行return resultDataSet;}catch (Exception ex){return null;}}public static DataSet GetDataTableByProcedure(string commandText){try{DataSet resultDataSet = null;db = DatabaseFactory.CreateDatabase();//建立數(shù)據(jù)庫連接resultDataSet = db.ExecuteDataSet(CommandType.StoredProcedure, commandText);//執(zhí)行存儲過程return resultDataSet;}catch (Exception e){return null;}}}
你的調(diào)用方法:
public class OracleDataProvider
{public static DataTable TestReadTable(string id){DataTable dataTable = null;try{string commandText = "select tu.name from tabUser tu";DataSet resultTable = OracleSqlHelper.GetDataTable(commandText);int table = resultTable != null ? resultTable.Tables.Count : 0;if (table > 0){dataTable = resultTable.Tables[0];}}catch (Exception e){throw e;}return dataTable;}
}
代碼下載
轉(zhuǎn)載于:https://blog.51cto.com/yangyoushan/1315546
總結(jié)
以上是生活随笔為你收集整理的WCF-004:WCF中也可以使用Microsoft.Practices.EnterpriseLibrary的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。