首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linq2db (MySQL)。设置行索引

Linq2db (MySQL)。设置行索引
EN

Stack Overflow用户
提问于 2018-06-14 20:58:56
回答 2查看 246关注 0票数 0

我需要为每一行指定行索引(带有Linq2db的MySQL5.7)。

如何构建一个查询,比如

代码语言:javascript
复制
SELECT `t`.*,  @n:=@n+1 as rank FROM ('some query') `t`, (SELECT @n := 0) `rowcounter`

或者我怎样才能用另一种方式来做呢?

EN

回答 2

Stack Overflow用户

发布于 2018-06-21 07:38:45

我们开始吧

代码语言:javascript
复制
[Sql.Expression("@n:=@n+1", ServerSideOnly = true)]
static int IncrementIndex()
{
    throw new NotImplementedException();
}

[Test, MySqlDataContext]
public void RowIndexTest(string context)
{
    using (var db = GetDataContext(context))
    {
        db.NextQueryHints.Add(", (SELECT @n := 0) `rowcounter`");

        var q =
            from p in db.Person
            select new
            {
                rank = IncrementIndex(),
                id   = p.ID
            };

        var list = q.ToList();
    }
}

另外,不要忘记将Allow User Variables=True;添加到您的连接字符串中。

票数 1
EN

Stack Overflow用户

发布于 2018-06-15 06:53:44

没有一种特殊的LINQ方法可以从SQL查询中获取行索引,但是在将SQL数据放入客户端之后,您可以在查询上获取索引。

代码语言:javascript
复制
var ans = someQuery.AsEnumerable().Select((t, rank) => new { t, rank });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50858172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档