Moon.Orm常见问题问答FAQ

本文介绍了 Moon.Orm 中实现分页查询的三种方法,并提供了具体的代码示例。同时,文章还讨论了配置问题、常见错误及解决办法,并分享了一个关于异步分页的实际案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 有问题在评论,我看到邮件会尽快回复 

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)

 

 

 

转载于:https://www.cnblogs.com/humble/p/3391005.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值