Moon.Orm常見問題問答FAQ


 有問題在評論,我看到郵件會盡快回復 

1.重點了解Db里面的方法.這是核心.

2.關於查詢語句MQL:http://www.cnblogs.com/humble/p/3380065.html 

3.關於如何使用:配置說明

4.關於增刪改查:http://www.cnblogs.com/humble/p/3293500.html

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:

 http://www.cnblogs.com/humble/p/3463307.html (最便捷的異步分頁實現)

 

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)

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM