日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
PDF.NET數(shù)據(jù)開發(fā)框架實體類操作實例之在MySQL中操作

在WFT項目中,SQL-MAP使用較多,但是實體類用的很少,實際上,PDF.NET的實體類相當強大,下面的測試程序是在MySQL中操作的實例。

為科爾沁等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及科爾沁網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站建設(shè)、成都網(wǎng)站制作、科爾沁網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

名詞解釋:

PDF.NET 是一套全新的快速數(shù)據(jù)處理框架 PWMIS Data Develop Framework,簡稱PDF

1,首先在App.config文件中配置數(shù)據(jù)庫連接字符串:

 
 
 
  1.  
  2.  
  3.    
  4.      
  5.    
  6.  

2,然后定義一個“用戶”實體類:

 
 
 
  1. /*  
  2.  * PDF.NET 數(shù)據(jù)開發(fā)框架  
  3.  * http://www.pwmis.com/sqlmap  
  4.  */  
  5. using System;  
  6. using System.Collections.Generic;  
  7. using System.Linq;  
  8. using System.Text;  
  9. using PWMIS.DataMap.Entity;  
  10.  
  11. namespace TestMySqlEntity  
  12. {  
  13.     class User:EntityBase   
  14.     {  
  15.         public User()  
  16.         {  
  17.             TableName = "tb_user";  
  18.             PrimaryKeys.Add("ID");//主鍵  
  19.             IdentityName = "ID";//標識,自增  
  20.             PropertyNames = new string[] {"ID","Name","Age" };  
  21.             PropertyValues = new object[PropertyNames.Length];  
  22.  
  23.         }  
  24.  
  25.         public int ID  
  26.         {  
  27.             get { return getProperty("ID"); }  
  28.             set { setProperty("ID", value); }  
  29.         }  
  30.  
  31.         public int Age  
  32.         {  
  33.             get { return getProperty("Age"); }  
  34.             set { setProperty("Age", value); }  
  35.         }  
  36.  
  37.         public string Name  
  38.         {  
  39.             get { return getProperty("Name"); }  
  40.             set { setProperty("Name", value,50); }  
  41.         }  
  42.     }  

3,根據(jù)這個實體類,我們?nèi)ySQL定義一個用戶表:tb_user,具體過程省略。

4,編寫ORM實體類操作的測試代碼:

 
 
 
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5. using PWMIS.DataMap.Entity;  
  6.  
  7. namespace TestMySqlEntity  
  8. {  
  9.     class Program  
  10.     {  
  11.         static void Main(string[] args)  
  12.         {  
  13.             User u = new User();  
  14.  
  15.             //*************構(gòu)建 OQL 查詢表達式 ******* begin ************  
  16.             //查詢實體集合  
  17.             //使用 OQLCompare 對象作為條件  
  18.             //OQL q = OQL.From(u).Select().Where(new OQLCompare(u).Comparer(u.Age, OQLCompare.CompareType.NoSmaller, 15)).END ;  
  19.  
  20.             OQL q = new OQL(u);  
  21.             //使用OQL2 作為條件對象  
  22.             q.Select().Where(q.Condition.AND(u.Age, ">=", 15)).OrderBy (u.Age ,"asc");  
  23.             //使用 QueryParameter 數(shù)組作為條件,適合于多個并列的And條件  
  24.             //q.Select().Where(new QueryParameter[] { new QueryParameter("Age", PWMIS.Common.enumCompare.NoSmaller, 15) }).OrderBy(u.Age, "asc");   
  25.             Console.WriteLine("OQL to SQL:\r\n"+q.ToString ());  
  26.  
  27.               
  28.             //*************構(gòu)建 OQL 查詢表達式 ******* end ************  
  29.  
  30.             //查詢實體列表  
  31.             var result = EntityQuery.QueryList(q);  
  32.             Console.WriteLine("查詢實體集合成功,數(shù)量:"+result .Count );  
  33.  
  34.             Console.WriteLine("\r\nExecuted SQL Text:\r\n{0}\r\n", PWMIS.DataProvider.Data.CommandLog.Instance.CommandText);  
  35.  
  36.             //查詢單個實體  
  37.             u.Name = "zhang san";  
  38.             q.Select().Where(u.Name);  
  39.             Console.WriteLine("OQL to SQL:\r\n" + q.ToString());  
  40.             User u1 = EntityQuery.QueryObject(q);  
  41.             if (u1 != null)  
  42.                 Console.WriteLine("查詢單個實體成功!");  
  43.  
  44.             Console.WriteLine("\r\nExecuted SQL Text:\r\n{0}\r\n", PWMIS.DataProvider.Data.CommandLog.Instance.CommandText);  
  45.  
  46.  
  47.             //直接使用EntityQuery.Instance 屬性的插入、修改、刪除方法  
  48.             u.Name = "li si3";  
  49.             u.Age = 15;  
  50.             if (EntityQuery.Instance.Insert(u) > 0)  
  51.                 Console.WriteLine("插入實體成功!"); //將自動為ID屬性賦值  
  52.  
  53.             Console.WriteLine("\r\nExecuted SQL Text:\r\n{0}\r\n", PWMIS.DataProvider.Data.CommandLog.Instance.CommandText);  
  54.  
  55.             u.Age = 25;  
  56.             if (EntityQuery.Instance.Update (u) > 0)  
  57.                 Console.WriteLine("修改實體成功!");  
  58.  
  59.             Console.WriteLine("\r\nExecuted SQL Text:\r\n{0}\r\n", PWMIS.DataProvider.Data.CommandLog.Instance.CommandText);  
  60.  
  61.             User u2 = new User();  
  62.             u2.Name = "wang wu";  
  63.             u2.Age = 20;  
  64.  
  65.             //使用EntityQuery 的實例對象方法更新實體  
  66.             //只會更新賦值過的屬性值  
  67.             EntityQuery eq = new EntityQuery(u2);  
  68.             if (eq.SaveAllChanges() > 0)  
  69.                 Console.WriteLine("更新實體成功!");  
  70.  
  71.             Console.WriteLine("\r\nExecuted SQL Text:\r\n{0}\r\n", PWMIS.DataProvider.Data.CommandLog.Instance.CommandText);  
  72.  
  73.             Console.Read();  
  74.         }  
  75.     }  

5,編譯運行,得到下面的結(jié)果:

 
 
 
  1. OQL to SQL:  
  2. SELECT [ID],[Name],[Age]  
  3.  FROM [tb_user]  
  4.    Where  [Age] >= @Age0  
  5.         Order by [Age] asc  
  6. 查詢實體集合成功,數(shù)量:23 
 
 
 
  1. Executed SQL Text:  
  2. SELECT `ID`,`Name`,`Age`  
  3.  FROM `tb_user`  
  4.    Where  `Age` >= @Age0  
  5.         Order by `Age` asc  
 
 
 
  1. OQL to SQL:  
  2. SELECT [ID],[Name],[Age]  
  3.  FROM [tb_user]  
  4.    Where Name=@Name  

查詢單個實體成功!

 
 
 
  1. Executed SQL Text:  
  2. SELECT `ID`,`Name`,`Age`  
  3.  FROM `tb_user`  
  4.    Where Name=@Name  

插入實體成功!

 
 
 
  1. Executed SQL Text:  
  2. INSERT INTO `tb_user`(`Name`,`Age`) VALUES (@P0,@P1)  

修改實體成功!

 
 
 
  1. Executed SQL Text:  
  2. UPDATE `tb_user` SET `Age`=@P0 WHERE `ID`=@P1  

更新實體成功!

 
 
 
  1. Executed SQL Text:  
  2. INSERT INTO `tb_user`(`Name`,`Age`) VALUES (@P0,@P1)  

6,結(jié)果說明

我們看到整個操作都成功了,特別注意這個:

 
 
 
  1. UPDATE `tb_user` SET `Age`=@P0 WHERE `ID`=@P1  

當時我們只給Age屬性重新賦值了,所以生成的更新語句也僅僅更新了該字段。

注意,當前測試程序僅支持PDF.NET框架***版本 Ver 4.0.11.0415 ,不過框架的ORM功能在之前的版本就已經(jīng)提供,只是顯示結(jié)果稍有不同。


本文題目:PDF.NET數(shù)據(jù)開發(fā)框架實體類操作實例之在MySQL中操作
文章位置:http://www.dlmjj.cn/article/dheogep.html