網上.net ORM框架也不少,但是我感覺這個框架配置很簡單的,前幾年貌似用的人很多,現在好像用得比較少了,隨著它官方的升級現在已經到3.0了, 並且採用T4 模板生成的方式,代碼量好像減少了。不過我感覺2.2還是比較穩定,前些天有網友問這個框架怎麼使用,在次讓我整理了一下。廢話就不說了,先看看怎麼 ...
網上.net ORM框架也不少,但是我感覺這個框架配置很簡單的,前幾年貌似用的人很多,現在好像用得比較少了,隨著它官方的升級現在已經到3.0了, 並且採用T4 模板生成的方式,代碼量好像減少了。不過我感覺2.2還是比較穩定,前些天有網友問這個框架怎麼使用,在次讓我整理了一下。廢話就不說了,先看看怎麼配置使用吧
步驟一 配置web.config:
在configSections節點上先加入SubSonic聲明代碼如下:
<configSections> <section name="SubSonicService" type="SubSonic.SubSonicSection, SubSonic" allowDefinition="MachineToApplication" restartOnExternalChanges="true" requirePermission="false"/> </configSections> <appSettings/>
直接是連接資料庫文件
<connectionStrings> <add name="SubSonicConn" connectionString="Data Source=127.0.0.1; Database=agebook; Integrated Security=true;User ID=sa;Password=sa;" providerName="System.Data.SqlClient"/> </connectionStrings>
在<configuration>內配置節點下配置SubSonic服務配置如下:
別忘了在中間加入<clear/>
首先看看name這個可以隨便取
connectionStringName="SubSonicConn" 這個是對應連接名稱
generatedNamespace="MyTest" 這個也是隨便取的的但是記得對應類命名空間名就行
<SubSonicService defaultProvider="SubSonicConn" enableTrace="false" templateDirectory=""> <providers> <clear/> <add name="SubSonicConn" type="SubSonic.SqlDataProvider, SubSonic" connectionStringName="SubSonicConn" generatedNamespace="MyTest" removeUnderscores="false"/> </providers> </SubSonicService>
OK配置文件信息好了
接下來倒入SubSonic.dll即可
步驟二:接下來配置代碼生成工具:
點擊vs 2010 工具欄中的工具選項 ==> 選擇 外部工具 ==> 添加 ==> 標題 可以隨便起,我使用的名稱為MySubSonicTools ==> 點擊命令的選擇按鈕,選擇下載SubSonic的SubCommander文件中的sonic.exe文件 ==> 參數:generate /out ormclass,初始目錄為:$(ProjectDir),並勾選“使用命令視窗”和“提示輸入參數”兩個選項,點確定。
Out ormclass 這個得註意瞭如果你新建的時網站程式一定要放到App_Code中
如圖:
點擊MySubSonic按鈕,然會出現彈窗點擊確定,刷新網站,就會出現生成的文件夾ormclass,如圖:
如果沒有App_Code中請移到裡面即可
其中agebook庫中相關為表的使用類,AllStructs.cs為主要的控制器文件,StoredProcedures.cs為存儲過程相關的類。如果你的操作沒有生成這些相關的類,應該是資料庫鏈接字元串配置的問題,檢查之後重新生成即可。
步驟三:SubSonic方法調用
完成以上的兩步之後,SubSonic配置就已經完成了,SubSonic使用語法如下:
使用之前要先引用:
using MyTest; //這個是我們在配置文件中的名稱即就是生成類的命名空間名稱 using SubSonic;
載入頁面代碼
if (!IsPostBack) { // 1.添加 A_Admin ad = new A_Admin(); ad.Name = "ttttt"; ad.Password = "wwwwwwwwww"; ad.Loginip = "127.0.0.1"; ad.Save(); // 2.修改 int updateallid = new Update(A_Admin.Schema) .Set(A_Admin.Columns.Password).EqualTo("密碼修改了") // 設置欄位Password值為“密碼修改了” .Where(A_Admin.Columns.Id).IsEqualTo("2") .Execute(); //當然修改還有其它方法 //A_Admin ad1 = new A_Admin(); //ad1.Id = 24; //ad1.Name = "ttttt"; //ad1.Password = "wwwwwwwwww"; //ad1.Loginip = "127.0.0.1"; // 3.刪除 // DB.Delete().From(A_Admin.Schema).Where(A_Admin.Columns.Id).IsEqualTo("7").Execute(); A_Admin.Delete(30); //批量刪除 //Query q = A_Admin.Query(); //q.AddWhere(A_Admin.Columns.Password, "wwwwwwwwww"); //q.QueryType = QueryType.Delete; //q.Execute(); //以上兩種方法都可以 // 4.查詢 this.GridView1.DataSource = DB.Select().From(A_Admin.Schema).ExecuteDataSet().Tables[0]; this.GridView1.DataBind(); }
以上代碼包括 增、刪、改、查方法
感覺是不是很簡單,比起其它orm框架如 Nhibernate省去了配置xml這些麻煩。
其實在開發中不管你用什麼ORM框架用著熟練順手就行, 用EF也行。甚至拋開這些框架直接ADO
本例demo下載:請點擊我