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

欣賞另一種Orm的設計風格:大道至簡

開發 后端
了解sql的原生態編程了嗎?如果你覺得繁瑣的話那就來看看Orm的設計風格:大道至簡!

一、使用sql及存儲過程

1)使用List<Dictionary<string, MObject>>

1.使用sql ,體驗原生態的感覺

  1. string sql="select * from Class where ClassName = @";  
  2. string sql2="select * from Class where DateTimem = @";  
  3. List<Dictionary<string, MObject>> mylist=db.ExecuteSqlToDictionaryList(sql,"boy'");  
  4. List<Dictionary<string, MObject>> mylist2=db.ExecuteSqlToDictionaryList(sql2,DateTime.Parse("2013-10-10 14:40:08"));  
  5. foreach(var oneClass in mylist){  
  6.                     string className=oneClass["className"].To<string>();  
  7.                     long id=oneClass["Classid"].To<long>();  
  8.                     DateTime datetimem=oneClass["datetimem"].To<DateTime>();//不用區分大小寫  
  9.                     Console.WriteLine(className+"  "+id+"  "+datetimem);  

2.使用mql,智能感知帶來的優雅體驗

  1. var  list=db.GetDictionaryList(ClassSet.SelectAll().Where(ClassSet.ClassID.BiggerThan(0))) 

2)MQL 全面接觸

2.1 MQL的標準查詢

  1. var mm=ClassSet.Select(ClassSet.ClassID,ClassSet.ClassName).  
  2.  
  3. Where(ClassSet.ClassName.Contains("s").And(ClassSet.ClassID.BiggerThan(9)));  
  4.  
  5.    
  6. SELECT [Class].[ClassID],[Class].[ClassName] FROM [Class] WHERE [Class].[ClassName] LIKE @p1  AND  [Class].[ClassID]>@p2  
  7. @p1=%s%  
  8. @p2=9 

2.2 MQL的嵌套查詢(含有Top查詢:支持mysql、oracle、postgreSQL、sqlserver、sqlite)

  1. var qiantao=ScoreSet.SelectAll().Where(  
  2.                     ScoreSet.UserID.In(UserSet.Select(UserSet.UserID).Where(  
  3.                         UserSet.ClassID.In(  
  4.                         ClassSet.Select(ClassSet.ClassID).Where(  
  5.                                 ClassSet.ClassName.Equal(c.ClassName).And(ClassSet.ClassID.BiggerThan(0))  
  6.                             )  
  7.                         )  
  8.                     )  
  9.                   )   
  10.                 ).Top(1);  
  11.   SELECT TOP 1 [Score].* FROM [Score] WHERE [Score].[UserID] IN (SELECT [User].[UserID] FROM [UserWHERE [User].[ClassID] IN (SELECT [Class].[ClassID] FROM [Class] WHERE [Class].[ClassName]=@p1  AND  [Class].[ClassID]>@p2 ) )  
  12. @p1=綜合測試ClassName2  
  13. @p2=0 

2.3 MQL的分組查詢

  1. var mql=ScoreSet.Select(ScoreSet.ScoreM.Sum().AS("sum"),ScoreSet.TypeName).  
  2.  
  3. Where(ScoreSet.ScoreM.BiggerThanOrEqual(100)).  
  4.  
  5. GroupBy(ScoreSet.TypeName).  
  6.  
  7. Having(ScoreSet.ScoreM.Sum().BiggerThan(300));  
  8.  
  9.    
  10. SELECT SUM([Score].[ScoreM]) AS 'sum',[Score].[TypeName] FROM [Score] WHERE  [Score].[ScoreM]>=@p1  GROUP BY [Score].[TypeName]  HAVING  SUM([Score].[ScoreM])>@p2  
  11. @p1=100  
  12. @p2=300 

2.4 MQL的連接查詢

  1. var m1=ClassSet.Select(ClassSet.ClassID,ClassSet.ClassName)  
  2.                     .LeftJoin(  
  3.                     UserSet.Select(UserSet.UserID))  
  4.                     .ON(ClassSet.ClassID.Equal(UserSet.UserID))  
  5.                     .Where(UserSet.UserID.BiggerThan(9));  
  6. SELECT [Class].[ClassID],[Class].[ClassName],[User].[UserID] FROM [Class] LEFT JOIN [User] ON [Class].[ClassID]=[User].[UserID]  WHERE  [User].[UserID]>@p1  
  7. @p1=9 

2.5 MQL的Union查詢

  1. var mql=ClassSet.SelectAll().Where(ClassSet.ClassID.BiggerThan(1))  
  2.                     .Union(ClassSet.SelectAll().Where(ClassSet.ClassID.BiggerThan(2)));  
  3.    
  4. var mql=ClassSet.SelectAll().Where(ClassSet.ClassID.BiggerThan(1))  
  5.                     .UnionAll(ClassSet.SelectAll().Where(ClassSet.ClassID.BiggerThan(2)));  
  6.  
  7.    
  8. SELECT [Class].* FROM [Class] WHERE  [Class].[ClassID]>@p1  UNION  SELECT [Class].* FROM [Class] WHERE  [Class].[ClassID]>@p2  
  9. @p1=1  
  10. @p2=2  
  11. SELECT [Class].* FROM [Class] WHERE  [Class].[ClassID]>@p1  UNION ALL SELECT [Class].* FROM [Class] WHERE  [Class].[ClassID]>@p2  
  12. @p1=1  
  13. @p2=2 

2.6 MQL的使用預覽

  1. public static void Main(string[] args)  
  2.         {  
  3.               
  4.             using (var db=Db.CreateDefaultDb()) {  
  5.                 db.TransactionEnabled=true;  
  6.                 db.DebugEnabled=true;  
  7.                 Console.WriteLine("---------------嵌套查詢---------------------");  
  8.                 var qiantao=ScoreSet.SelectAll().Where(  
  9.                     ScoreSet.UserID.In(UserSet.Select(UserSet.UserID).Where(  
  10.                         UserSet.ClassID.In(  
  11.                         ClassSet.Select(ClassSet.ClassID).Where(  
  12.                                 ClassSet.ClassName.Equal(c.ClassName).And(ClassSet.ClassID.BiggerThan(0))  
  13.                             )  
  14.                         )  
  15.                     )  
  16.                   )   
  17.                 ).Top(1);  
  18.                  
  19.                 Console.WriteLine("---------------分組查詢---------------------");  
  20.                 var mql=ScoreSet.Select(ScoreSet.ScoreM.Sum().AS("sum"),ScoreSet.TypeName).Where(ScoreSet.ScoreM.BiggerThanOrEqual(100)).GroupBy(ScoreSet.TypeName).Having(ScoreSet.ScoreM.Sum().BiggerThan(300));  
  21.                 
  22.                 Console.WriteLine("---------------連接查詢---------------------");  
  23.                 var m1=ClassSet.Select(ClassSet.ClassID,ClassSet.ClassName)  
  24.                     .LeftJoin(  
  25.                     UserSet.Select(UserSet.UserID))  
  26.                     .ON(ClassSet.ClassID.Equal(UserSet.UserID))  
  27.                     .Where(UserSet.UserID.BiggerThan(9));  
  28.  
  29.             }  
  30.             Console.WriteLine("---------------Union測試---------------------");  
  31.             using (var db=Db.CreateDefaultDb()) {  
  32.                 db.TransactionEnabled=true;  
  33.                 db.DebugEnabled=true;  
  34.                   
  35.                 var mql=ClassSet.SelectAll().Where(ClassSet.ClassID.BiggerThan(1))  
  36.                     .Union(ClassSet.SelectAll().Where(ClassSet.ClassID.BiggerThan(2)));   
  37.             }  
  38.         } 

3)使用DataSet

1.使用存儲過程

  1. DataSet dataset=db.ExecuteProToDataSet("存儲過程名",參數一,參數二); 

2.使用sql

  1. DataSet dataset=db.ExecuteSqlToDataSet(sql,"boy"); 


3.使用mql

  1. DataSet dataset=db.GetDataSet(ClassSet.SelectAll().Where(ClassSet.ClassID.BiggerThan(0))); 

4)使用xml配置sql查詢

1.配置config節點

  1. <appSettings> 
  2. <add key="SQL_XML_FILE_NAME" value="C:\Moon\Moon.Orm\sql.xml"></add>//如果不是全路徑,則默認在dll生成目錄  
  3. </appSettings> 

 

2.配置xml(sql.xml)

  1. <?xml version="1.0"?> 
  2. <sqls> 
  3. <sqlxml id="getname"> 
  4. <sql>select name from user where id>@</Sql> 
  5. <description>查詢用戶名(描述信息)</Description> 
  6. </sqlxml> 
  7. </sqls> 

3.使用id進行查詢

  1. var list=db.GetDictionaryList(XmlHelper.GetSqlXmlByID("getname"),"boy"); 

5)sql之王者歸來

使用GetDynamicList ,讓你體驗另一種自由

  1. object,但在.net 4.0下面,您可以用dynamic直接取值.  
  2. string sql22="select * from Score";  
  3. dynamic list22=db.GetDynamicList(sql22,"Score");  
  4. foreach(var a in list22){  
  5. Console.WriteLine(a.ID+"--"+a.ScoreM+"--"+a.UserID+"--"+a.TypeName);//都是強類型  

以下是體驗強類型:)

原文鏈接:http://www.cnblogs.com/humble/p/3380065.html

責任編輯:林師授 來源: 博客園
相關推薦

2015-12-08 11:13:38

戴爾云計算

2014-11-17 15:23:02

SAPSAP HANA

2016-03-25 15:37:18

數據治理數據分析BI

2017-11-20 15:15:24

群暉

2015-09-14 13:48:35

數據挖掘數據可視化

2015-06-09 22:25:06

SAP大道至簡

2014-07-10 17:21:41

SAPSAP論壇簡化

2013-05-22 15:31:07

AOP的CGlib實現

2017-02-07 14:27:24

安全風險威脅

2014-09-17 14:37:06

2018-04-18 07:34:58

2013-09-27 09:30:33

2015-02-09 18:19:38

SAPS4HANAERP

2024-10-25 13:31:31

2016-08-16 13:08:23

Angular2ng-controllTypeScript

2016-03-03 10:29:31

用戶信息改進

2010-07-21 16:23:09

運行telnet程序

2011-12-29 21:28:31

Metro UI

2023-06-18 23:19:17

ChatGPTPPT方式

2016-07-11 16:18:26

互聯網
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99久久国产综合精品麻豆 | 国内毛片毛片毛片毛片 | 国产精品一区二区视频 | 精品国产乱码久久久久久久久 | 日韩乱码在线 | 国产精品爱久久久久久久 | 国产成人精品一区二区三区在线 | 午夜丰满少妇一级毛片 | 国产欧美在线播放 | 国产91精品久久久久久久网曝门 | 在线观看黄色电影 | 另类 综合 日韩 欧美 亚洲 | 在线视频一区二区 | 狠狠操狠狠搞 | 国产91视频播放 | 国产精品视频一区二区三区四蜜臂 | 秋霞在线一区 | 国产一区二区三区免费 | 久久国产婷婷国产香蕉 | 福利精品| 91人人视频在线观看 | 色婷婷av一区二区三区软件 | 久草成人网 | 国产精品视频999 | 色一情一乱一伦一区二区三区 | 亚洲精品日韩在线 | 精品亚洲永久免费精品 | 免费的网站www | 成人免费淫片aa视频免费 | 亚洲二区视频 | 91精品国产综合久久精品 | 亚洲iv一区二区三区 | 九九免费在线视频 | 岛国一区 | 国产精品揄拍一区二区久久国内亚洲精 | 国产69精品久久久久777 | 四虎永久免费地址 | 中文字幕一区二区三区四区五区 | 亚洲精品日韩精品 | 国产九一精品 | 天天视频成人 |