总结:我希望找到一种使用Entity Framework和MySQL(这很重要)生成随机顺序的方法。 这个解决方案不应该使用原始SQL查询或在从数据库加载所有值后排序。
我尝试过的:
我从那个答案中得到了使用NewGuid()生成随机顺序的想法。
代码:
var query = from e in context.Table
orderby Guid.NewGuid()
select e;
var test = query.FirstOrDefault();
始终抛出异常:
An error occurred while executing the command definition. See the inner exception for details.
Inner exception:
FUNCTION MyDatabase.NewGuid does not exist System.Exception {MySql.Data.MySqlClient.MySqlException}
看起来问题在于MySQL没有NewGuid()函数。
我该如何按照MySQL函数RAND()而不是NewGuid()进行排序呢?换句话说,如何在Entity Framework中使用自定义函数RAND?
AsEnumerable()
而不是ToList()
)。我之所以不经常使用这种方式的原因是将数据库中的所有行加载到客户端,而不是有限的行数(例如500行而不是10行)。无论如何,感谢您帮助调查此案例。 - Dador