请教:Dapper关于SqlServer多表分页的问题

qq_37131603 2017-07-09 02:12:38
有高手试过Dapper在SQLServer下多表联读时的分页问题吗?

SQL语句作用:读一用户的收藏(关注其他用户)记录,同时将关注者和被关注者的用户信息一并读出,实现分页。
SQL语句如下:
SELECT * FROM 
(SELECT ROW_NUMBER() OVER (ORDER BY Fav.ID desc) AS RowNumber,* FROM
(Fav Left Join UserInfo UA ON Fav.ToUserID = UA.ID)
Where UserID=174) TA
WHERE RowNumber BETWEEN 1 AND 10

这个SQL语句执行错误:[Err] 42000 - [SQL Server]多次为 'TA' 指定了列 'ID'。
但类似的语句在MySQL中却OK,MySQL中使用Limit很简单。
写到存储过程里,结果也是一样。


再附上C#代码:(只是补充附上,不是问题关键)

private List<Model.Fav> _GetList(string sql)
{
using (var conn = DbHelper.OpenConnection())
{
List<Model.Fav> list = conn.Query<Model.Fav, Model.UserInfo, Model.Fav>(sql,
(mFav, mSub1, mSub2) =>
{
mFav.ToUserIDModel = mSub2;
return mFav;
}).ToList();

return list;
}
}
...全文
542 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 版主 2017-08-02
  • 打赏
  • 举报
回复
FROM (Fav Left Join UserInfo UA ON Fav.ToUserID = UA.ID) A 这一段要取个别名
nitaiyoucala 2017-08-02
  • 打赏
  • 举报
回复
* from的问题,给* 对应的列逐个写出来,不要重复

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧