哪些 ORM 工具支持这个版本的 Queryable.Select 扩展方法
Posted
技术标签:
【中文标题】哪些 ORM 工具支持这个版本的 Queryable.Select 扩展方法【英文标题】:Which ORM tools support this version of Queryable.Select extension method 【发布时间】:2009-12-09 13:21:13 【问题描述】:你知道支持这种扩展方法的 ORM:
public static IQueryable<TResult> Select<TSource, TResult>(
this IQueryable<TSource> source,
Expression<Func<TSource, int, TResult>> selector)
基本上,它允许将行号(按顺序排列的结果索引)添加到投影中。与IEnumerable
一起使用的示例是here。但是IQueryable
也有同样的方法。
所以我很好奇,有没有支持这种方法的ORM工具?
问题其实和this one有关。
【问题讨论】:
【参考方案1】:您当然可以将它与 LINQ to Entities 一起使用。由于它只是对标准 Select
的改进,我认为任何支持 Select
的 IQueryable
提供程序也可以使用它。
但请记住:它不是行号,它是Int32
的事实证明了这一点。这是一个index,这不是一回事。
【讨论】:
其实我不像你那么确定:到目前为止我没有找到任何链接来批准这个。但是将测试添加到 ORMBattle 似乎是个好主意。如果这被批准,您的回答将被接受:) 所以您刚刚发布到另一个我的问题的文档(关于 EF 支持的 IQueryable 方法列表)明确指出 EF 不支持此方法:msdn.microsoft.com/en-us/library/bb738550(VS.100).aspx(参见第二项)。跨度> 我以前肯定用过,但是想不出好办法去搜。我当然有可能先通过AsEnumerable
。无论如何,它肯定不应该是一个行号,不管你怎么做。
Err... 你的意思是避免使用行号是可取的吗?如果是这样,那是真的,我知道这一点。
是的,我就是这个意思。我只是因为你的问题实际上说了什么才提出来的。【参考方案2】:
没有例子,所以很可能没有这样的 ORM。
【讨论】:
我们终于在 DataObjects.Net 中实现了这些东西。以上是关于哪些 ORM 工具支持这个版本的 Queryable.Select 扩展方法的主要内容,如果未能解决你的问题,请参考以下文章