下面是一个关于实体框架的问题,它一直在困扰着我。不同权值的随机值
我有一个称为奖品的表,有不同的奖品。一些货币价值较高,一些货币价值较低。一个简单的表示将是这样的:
+----+---------+--------+
| id | name | weight |
+----+---------+--------+
| 1 | Prize 1 | 80 |
| 2 | Prize 2 | 15 |
| 3 | Prize 3 | 5 |
+----+---------+--------+
重量是这种情况是可能的引擎盖,我希望这个项目被随机选择。
我选择一个随机的奖品在同一时间,像这样:
var prize = db.Prizes.OrderBy(r => Guid.NewGuid()).Take(1).First();
我想作的就是用重量来确定一个随机项的可能性被退回,所以Prize 1
将返回80%时间,Prize 2
15%等等。
我认为这样做的一种方式是通过在数据库上获得与体重相同的奖金。与Prize 3
相比,拥有80次Prize 1
的回报率更高,但这并不一定准确。
必须有更好的方法来做到这一点,所以我想知道你是否可以帮我解决这个问题。
在此先感谢