gpt4 book ai didi

c# - Guid.NewGuid() 在 LINQ to Entities 中做什么?

转载 作者:太空宇宙 更新时间:2023-11-03 17:16:52 25 4
gpt4 key购买 nike

我编写了一个 LINQ to Entities,它使用了以下 OrderBy:

.OrderBy(i => Guid.NewGuid())

上面随机化了数据集的顺序,因此每次运行此代码都会产生不同的顺序。

但是,如果我执行以下任一操作,数据集将不会随机化,并且对于所有 3 个 OrderBy 都是完全相同的,请参见下文:

.OrderBy(i => new Guid("5fd3e5e7-b172-42f5-a4dd-da4212201a31"))
.OrderBy(i => new Guid("beb7345c-1421-48e0-b177-51b2bb065214"))

Guid g = Guid.NewGuid();
.OrderBy(i => g)

可以看到上面的3个OrderBy使用的是不同的Guid,为什么会产生相同的订单呢?为什么每次我运行这段代码时 Guid.NewGuid() 都会随机化列表,而其他 3 个 OrderBy 语句每次都产生相同的结果?

我的问题是,我需要将一个值传递给一个函数,该函数在 LINQ to Entities 数据集中用于根据值随机化结果,但是我还需要能够传递相同的值并检索相同的随机顺序。

谢谢。

最佳答案

当您拥有 Guid.NewGuid() 时,此行为是 Entity Framework 中的设计,它模仿 SQL 的 ORDER BY NEWID(),以允许随机排序。当您指定常量 Guid 时,它仅按此常量值排序。

关于c# - Guid.NewGuid() 在 LINQ to Entities 中做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41487665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com