从数据库生成随机集合

时间:2017-08-27 15:30:51

标签: c# asp.net-web-api linq-to-entities

我在webapi中使用以下方法来提取数据。 我正在构建一个应用程序,该应用程序将具有来自此方法的默认数据的列表视图。 我希望每次用户启动应用程序时都会更改此数据。

如何使用此方法生成随机数据。大约有4种不同的类别。

        public IEnumerable<ArticlesDto> Find(string  category)
                {
                    IEnumerable<ArticlesDto> objArticles = null;

                    var context = new ArticlesContext();

                        objArticles = (from j in context.Information
                                       where j.Category == category

                                       select new ArticlesDto()
                                       {
                                           Id = j.Id,
                                           Headlines = j.Headlines,
                                           Url = j.Url,
                                           Category = j.Category,
                                           Summary = j.Summary
                                       });
                        return objArticles;                       
                }

示例:我第一次使用该应用程序时,会看到大约20行的数据列表(默认数据)。 我第二次使用它时,我看到另一个不同于上次使用该应用程序的20行的列表。

2 个答案:

答案 0 :(得分:1)

为什么不尝试使用AutoFixture。每次进行WebAPI调用时,此框架都可以帮助您生成随机数据。这里是GITHub链接。如果有帮助,请标记为答案。

https://github.com/AutoFixture

答案 1 :(得分:1)

Just OrderBy随机数,然后根据你的喜好选择:

Random rnd = new Random();
objArticles = context.Information.Where(i=> i.Category == category)
.OrderBy(i=> rnd.Next())
.Select(i=> new ArticlesDto
{
     Id = i.Id,
     Headlines = i.Headlines,
     Url = i.Url,
     Category = i.Category,
     Summary = i.Summary
}).Take(20);