如何在Bogus C#中从具有相同值的总项目中生成固定数量的项目

问题描述

我试图在 C# 中生成 3000 条假记录,条件是每 1000 个项目在 UTC 毫秒内具有相同的时间戳(update_time),然后接下来的 1000 个将在 UTC 毫秒内具有相同的时间戳。如何实现?

private static IReadOnlyCollection<Document> GetDocumentsToInsert()
        {
            return new Bogus.Faker<Document>()
            .StrictMode(true)
            //Generate item
            .RuleFor(o => o.id,f => Guid.NewGuid().ToString()) //id
            .RuleFor(o => o.update_time,f => DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();)
            .Generate(3000);
        }

        // <Model>
        

        public class Document
        {
            public string update_time {get;set;}
            public string id{get;set;}
        }

解决方法

我对 Faker 不熟悉,但看起来你想要这样的东西:

private static IEnumerable<Document> GetDocumentsToInsert()
{
    IEnumerable<Document> result = new List<Document>();

    for (int x = 0; x < 3; ++x)
    {
        DateTimeOffset timeNow = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();

        IEnumerable<Document> temp = new Bogus.Faker<Document>()
            .StrictMode(true)
            //Generate item
            .RuleFor(o => o.id,f => Guid.NewGuid().ToString()) //id
            .RuleFor(o => o.update_time,f => timeNow;)
            .Generate(1000);

        result = result.Concat(temp);
    }

    return result;
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...