LINQ to SQL:是否有支持的IQueryable扩展方法的完整列表?

8

我正在寻找LINQ to SQL的相关列表。理想情况下,我希望有其他支持的方法(或成员 - 例如构造函数)的列表,比如DateTime类型。


1
那些投票将此问题作为 https://dev59.com/5ErSa4cB1Zd3GeqPY7wP 的完全重复关闭的人是错误的。L2S和L2E的规则不同,文档也不同。 - Craig Stuntz
2个回答

3

我接受了这个回复,因为它似乎是可以找到的最全面的信息。没有支持/不支持IQueryable方法的列表 - 只有一些不支持的示例:http://msdn.microsoft.com/en-us/library/bb882656.aspx - Alex Yakunin

0

http://msdn.microsoft.com/zh-cn/library/bb337580.aspx。所有这些扩展方法都被记录为IQueryable的成员。

请记住,IQueryable实现了IEnumerable,因此IEnumerable实现的任何内容也可以在IQueryable上使用,但是需要注意其中一些方法不起作用!特别是任何使用自定义比较器的方法将编译正确,但会从LINQ to SQL中获得运行时错误。对于具有非数字值的.Take()和.Skip()也是如此。


我完全了解IQueryable和IEnumerable(我是支持LINQ的ORM工具的开发人员之一)。你的回复并没有帮助,因为任何 LINQ提供程序都只支持IQueryable方法的子集。问题本身表明我知道这些方法的完整列表... - Alex Yakunin
那么你的问题肯定不清楚。为什么DateTime会与任何其他值类型有所不同?IQueryable将支持哪些构造函数(任何类型)?除了在其上定义或从中继承的接口上定义的方法之外,IQueryable还支持哪些其他方法? - Cylon Cat
是的,也许问题真的很不清楚,特别是如果你没有太多投入到LINQ翻译中去。其他类型支持的构造函数和成员很有趣,因为IQueryable提供程序要么支持其中一个,要么不支持。 "支持"意味着它能够将具有此成员的表达式翻译为其SQL等效物。显然,并非所有内容都可以通过这种方式翻译,因此一个特定提供程序支持的BCL类型\成员集也很有趣。 - Alex Yakunin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接