Moon.Orm常見問題問答FAQ
阿新 • • 發佈:2018-12-31
有問題在評論,我看到郵件會盡快回復
1.重點了解Db裡面的方法.這是核心.
3.關於如何使用:配置說明
5.如果不能執行,看看你的配置檔案中
正確的格式:
providerName="Moon.Orm,Moon.Orm.資料庫型別"
錯誤的格式:
providerName="Moon.Orm,資料庫型別"
6.如果發現無Table標記的異常,說明你的版本太老了,下載最新的程式碼生成器和moon.orm(部落格左邊有導航)
7.如何分頁?
Db中有三個API都能完成分頁功能,分別如下:
1.用DataSet儲存分頁
/// <summary>/// 獲取一個分頁的DataSet /// </summary> /// <param name="mql">mql語句</param> /// <param name="sumPageCount">總頁數</param> /// <param name="pageIndex">頁碼</param> /// <param name="onePageDataCount">每頁資料的條數</param> /// <param name="oneOrderbyFieldName">sqlserver中會用到的排序欄位(查詢結果中一個欄位),其他型別資料庫則填寫null</param> /// <returns>分頁的DataSet</returns> public virtual DataSet GetPagerToDataSet(MQLBase mql,out int sumPageCount,int pageIndex,int onePageDataCount,string oneOrderbyFieldName)
2.用自定義實體集儲存分頁
/// <summary> ///獲取一個分頁的自定義實體集 /// </summary> /// <param name="mql">mql語句</param> /// <param name="sumPageCount">總頁數</param> /// <param name="pageIndex">頁碼</param> /// <param name="onePageDataCount">每頁資料的條數</param> /// <param name="oneOrderbyFieldName">sqlserver中會用到的排序欄位(查詢結果中一個欄位),其他型別資料庫則填寫null</param> /// <returns>自定義實體集</returns> public virtual List<T> GetPagerToOwnList<T>(MQLBase mql,out int sumPageCount,int pageIndex,int onePageDataCount,string oneOrderbyFieldName)where T:new()
3.用DictionaryList儲存分頁
/// <summary> /// 獲取一個分頁DictionaryList,不支援sqlserver2000 /// </summary> /// <param name="mql">mql語句</param> /// <param name="sumPageCount">總頁數</param> /// <param name="pageIndex">頁碼</param> /// <param name="onePageDataCount">每頁資料的條數</param> /// <param name="oneOrderbyFieldName">sqlserver中會用到的排序欄位(查詢結果中一個欄位,如:xxid desc,或 xxid asc),其他型別資料庫則填寫null</param> /// <returns>DictionaryList</returns> public virtual DictionaryList GetPagerToDictionaryList(MQLBase mql,out int sumPageCount,int pageIndex,int onePageDataCount,string oneOrderbyFieldName)
使用demo:sqlserver為例
using (Db db=Db.CreateDefaultDb()) { var mql=ProductsSet.SelectAll().Where(ProductsSet.ProductId.BiggerThan(1)).OrderByDESC(ProductsSet.ProductId); int sum; var list=db.GetPagerToDictionaryList(mql,out sum,2,3,"ProductId desc"); Moon.Orm.Util.DictionaryListHelper.ShowDictionaryListInConsole(list); Console.WriteLine(list.Count); }
可以看看實際demo:
8.出現mysql問題
mysql使用者可能出現以下問題.主要是你已經安裝了mysql.data.dll在你的計算機中,刪除配置檔案中節點(如下第二圖)
9.關於distinct查詢.
mql中沒有直接提供支援.但是對於熟悉sql的人應該知道,可以用分組代替,且效能相當. 例如:var mql=UserInfoSet.SelectAll().where(UserInfoSet.ID.IN( UserInfoSet.Select(UserInfoSet.ID.Min()).GroupBy(UserInfoSet.Name) ) ); select * from userinfo where id in(select min(id) from userinfo group by name)