首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ObjectQuery.OrderBy()可以使用NEWID()吗?

ObjectQuery.OrderBy()可以使用NEWID()吗?
EN

Stack Overflow用户
提问于 2010-07-21 09:19:13
回答 2查看 822关注 0票数 0

我发现Entity SQL支持NEWID(),但是ObjectQuery也支持它吗?http://msdn.microsoft.com/en-us/library/bb738616.aspx

我是否可以像这样编写objectquery:

context.member.orderby("NEWID()").select("it.UserID");

或者像这样的东西?或者我应该用另一种方式写作?

我认为如果entity sql支持NEWID()函数,那么它也应该被ObjectQuery接受。例如,您可以在ObjectQuery.Where()或Select()中使用distinct(it.UserID)或BitWiseAND(it.UserID,1)。

非常感谢。

EN

回答 2

Stack Overflow用户

发布于 2010-07-27 17:28:03

这是特定于SQL Server的规范函数,因此应以‘SqlServer’为前缀:

代码语言:javascript
复制
context.member.orderby("SqlServer.NEWID()").select("it.UserID");

不幸的是,这也行不通: Where扩展方法至少需要一个对immediate输入作用域的引用。

票数 0
EN

Stack Overflow用户

发布于 2010-08-02 13:08:13

感谢Devart的回复。

实际上,我发现我可以像这样使用:

var query1 = context.member.select("it.userid,SqlServer.NEWID() as newid").orderby("it.newid");

这可以对结果进行随机排序,您会发现NEWID()在翻译后的sql查询中。

但是如果你想从'query1‘结果集中选择部分结果,你就不能写: write:

newid").orderby("it.newid").select("it.userid");query2 = context.member.select("it.userid,SqlServer.NEWID() as var

因为当您使用sql事件探查器观察转换后的sql传入sql服务器时,您会发现'NEWID()‘消失了。

然而,我认为'query2‘应该是有意义的。但它不起作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3295626

复制
相关文章

相似问题

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