成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

PDF.NET數據開發框架實體類操作實例之在MySQL中操作

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

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

名詞解釋:

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

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

  1. <?xml version="1.0" encoding="utf-8" ?> 
  2. <configuration> 
  3.   <connectionStrings> 
  4.     <add name ="default" connectionString ="server=192.168.50.41;User Id=root;password=hisun;database=test" providerName="PWMIS.DataProvider.Data.MySQL,PWMIS.MySqlClient"/> 
  5.   </connectionStrings> 
  6. </configuration> 

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

  1. /*  
  2.  * PDF.NET 數據開發框架  
  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<int>("ID"); }  
  28.             set { setProperty("ID", value); }  
  29.         }  
  30.  
  31.         public int Age  
  32.         {  
  33.             get { return getProperty<int>("Age"); }  
  34.             set { setProperty("Age", value); }  
  35.         }  
  36.  
  37.         public string Name  
  38.         {  
  39.             get { return getProperty<string>("Name"); }  
  40.             set { setProperty("Name", value,50); }  
  41.         }  
  42.     }  

3,根據這個實體類,我們去MySQL定義一個用戶表: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.             //*************構建 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 數組作為條件,適合于多個并列的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.             //*************構建 OQL 查詢表達式 ******* end ************  
  29.  
  30.             //查詢實體列表  
  31.             var result = EntityQuery<User>.QueryList(q);  
  32.             Console.WriteLine("查詢實體集合成功,數量:"+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<User>.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<T>.Instance 屬性的插入、修改、刪除方法  
  48.             u.Name = "li si3";  
  49.             u.Age = 15;  
  50.             if (EntityQuery<User>.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<User>.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<T> 的實例對象方法更新實體  
  66.             //只會更新賦值過的屬性值  
  67.             EntityQuery<User> eq = new EntityQuery<User>(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,編譯運行,得到下面的結果:

  1. OQL to SQL:  
  2. SELECT [ID],[Name],[Age]  
  3.  FROM [tb_user]  
  4.    Where  [Age] >= @Age0  
  5.         Order by [Age] asc  
  6. 查詢實體集合成功,數量: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,結果說明

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

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

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

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

原文鏈接:http://ft.codeplex.com/discussions/253694

【編輯推薦】

  1. 用C++連接MySQL等數據庫一
  2. 用C++連接MySQL等數據庫二
  3. 這些SQLite與SQL差異問題,你遇到過嗎
  4. 如何將AS3連接到MySQL數據庫上
  5. 如何解決IBatis.net與MySQL連接問題

 

責任編輯:艾婧 來源: codeplex
相關推薦

2011-04-26 15:26:38

PostgreSQL

2011-05-31 10:38:14

PostgreSQL

2009-11-12 15:47:14

ADO.NET更新數據

2011-06-01 15:45:28

實體類序列化

2009-12-28 16:57:40

ADO .NET 類

2009-09-10 10:09:46

LINQ to SQL

2009-08-21 17:41:07

.NET平臺構成

2011-07-05 18:04:45

QT Mysql

2011-08-08 15:56:18

iPhone 震動 NSUserDefa

2009-08-20 11:07:07

C#共享內存

2010-01-05 15:43:13

.NET Framew

2010-04-19 08:51:30

2011-07-07 16:42:38

iPhone Sqlite3 數據庫

2011-08-03 16:22:05

Objective-C CodeBlocks

2009-07-30 13:28:55

ASP.NET中的ja

2009-09-02 19:12:25

重新分發.NET框架

2009-12-29 10:26:43

ADO.NET實體框架

2009-12-22 14:15:08

ADO.Net處理數據

2010-05-19 16:31:38

MySQL數據庫

2024-05-16 08:28:20

類型處理器D3BootJSON
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品国产三级国产aⅴ中文 | 成年网站在线观看 | 成人黄色av网站 | 欧美美女爱爱 | 成人在线国产 | 91看片免费版 | 亚洲久草 | 欧美一级免费看 | aaaaaa大片免费看最大的 | 日韩在线 | 国产亚洲精品久久久久动 | 国产电影一区 | 日韩久久网 | 一区二区精品视频 | 国产日韩精品在线 | 色婷婷精品久久二区二区蜜臂av | 亚洲一区二区免费电影 | 国产免费一区 | 国产精品毛片一区二区三区 | 中文字幕一区二区三区四区五区 | 日日射夜夜骑 | 99国内精品久久久久久久 | 亚洲精品欧美一区二区三区 | 国产精品久久久久久久久久免费看 | 欧美久久视频 | 国产一区二区三区在线免费 | 91亚洲国产| 超碰在线播 | 成人国产精品一级毛片视频毛片 | 欧美激情久久久 | 日本天天操 | 国产第一页在线播放 | 在线激情视频 | 污污的网站在线观看 | 精品国产一区二区三区性色av | 人人做人人澡人人爽欧美 | 91极品欧美视频 | 欧美性生活网 | 性高湖久久久久久久久aaaaa | 国产乱码精品1区2区3区 | 中文字幕亚洲精品 |