EF Code First:如何获取随机行
如何构建一个查询来检索随机行?
如果我用 SQL 编写它,那么我会在 newid() 上下一个订单,并从顶部删除 n 行。无论如何先在 EF 代码中执行此操作?
我尝试创建一个使用 newid() 的查询并使用 DbSet.SqlQuery() 执行它。虽然它有效,但它并不是最干净的解决方案。
另外,尝试检索所有行并按新的 guid 对它们进行排序。尽管行数相当少,但这仍然不是一个好的解决方案。
有什么想法吗?
How can I build a query where I would retrieve random rows?
If I were to write it in SQL then I would put an order by on newid() and chop off n number of rows from the top. Anyway to do this in EF code first?
I have tried creating a query that uses newid() and executing it using DbSet.SqlQuery(). while it works, its not the cleanest of solutions.
Also, tried retrieve all the rows and sorting them by a new guid. Although the number of rows are fairly small, its still not a good solution.
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
只需致电:
Just call:
比较两个选项:
跳过(随机行数)
方法
生成的 SQL
Guid
方法
生成的 SQL
Comparing two options:
Skip(random number of rows)
Method
Generated SQL
Guid
Method
Generated SQL
ef core 6 + 有一个新函数:EF.Functions.Random()
ef core 6 + there's a new function : EF.Functions.Random()
您可以尝试以下方法:
假设您在 EF 中有一个类似下面创建表的类。
you can try follow method:
Provided you have a class in EF like the one below that creates the table.