一、什么是真正的使用sql?
簡介:
問題:在日常開發過程中,我們常常發現一種情況:想直接使用sql語句來完成復雜復雜的邏輯查詢.但如果直接使用sql,卻無對應的實體類可以使用.
問題2:MVC中如何在View中返回匿名對象?
Moon給出的解決方案:
1)通過代碼生成器生成對應的實體類;代碼生成器下載地址:http://www.cnblogs.com/humble/p/3312018.html
2)通過GetDictionaryList、ExecuteSqlToDictionaryList等方法獲取(當然也支持MQL),List<Dictionary<string,MObject>> 列表對象. 大家可以直接看db中定義的方法.去具體值的時候遍歷既可以.MObject是對Object的一個封裝,用於存值.當取值的時候可以用形如:a["ID"].To<int>() 的形式取到具體類型的值."ID"不分大小寫;
3)通過GetDynamicList,此方法可以獲取強類型的List T集合(也解決了第二個問題),雖然返回為
object,但在.net 4.0下面,您可以用dynamic直接取值.
string sql22=
"select * from Score";
dynamic list22=db. GetDynamicList(sql22, "Score");
foreach( var a in list22){
Console. WriteLine(a.ID+ "--"+a.ScoreM+ "--"+a.UserID+ "--"+a.TypeName);
}
dynamic list22=db. GetDynamicList(sql22, "Score");
foreach( var a in list22){
Console. WriteLine(a.ID+ "--"+a.ScoreM+ "--"+a.UserID+ "--"+a.TypeName);
}
使用注意:
/// <summary>
/// (注意您需要手動自己解決sql注入問題),
/// 此方法可以獲取強類型的List T集合,雖然返回為
/// object,但在.net 4.0下面,您可以用dynamic直接取值.
/// dynamic list=db.GetDynamicList( sql, className);
/// </summary>
/// <param name="sql">您的sql語句</param>
/// <param name="className">關乎此sql的查詢所用的className(可以隨意寫,只要滿足類名的[ 命名規則 ]), 多 個sql語句僅僅參數不一樣,可以用同一個className</param>
/// <returns>強類型的List,但類型為object</returns>
public object GetDynamicList( string sql, string className)
/// (注意您需要手動自己解決sql注入問題),
/// 此方法可以獲取強類型的List T集合,雖然返回為
/// object,但在.net 4.0下面,您可以用dynamic直接取值.
/// dynamic list=db.GetDynamicList( sql, className);
/// </summary>
/// <param name="sql">您的sql語句</param>
/// <param name="className">關乎此sql的查詢所用的className(可以隨意寫,只要滿足類名的[ 命名規則 ]), 多 個sql語句僅僅參數不一樣,可以用同一個className</param>
/// <returns>強類型的List,但類型為object</returns>
public object GetDynamicList( string sql, string className)
二、MQL及增刪改查的使用說明
博文鏈接: http://www.cnblogs.com/humble/p/3293500.html