使用Bogus设置成员属性取值范围

Using Bogus to set member property value range

我有以下 classes:

  Class Person
    Property ID As String = Nothing
    Property Firstname As String = ""
    Property Lastname As String = ""
  End Class

  Class Account
    Property AccountNumber As String = ""
    Property Owners As New List(Of Person)
  End Class

使用 Bogus,我为 Person.ID 设置了从 1,000 到 10,000 的值范围,如下所示:

    Dim fakePerson = New Faker(Of Person)().
      StrictMode(False).
      Rules(Sub(c, p)
              p.ID = c.Random.Long(1000, 10000).ToString
            End Sub
      )

当我像这样实例化帐户 class 的实例时,如何设置 Account.Owners 以利用 fakePerson 中定义的 Person.ID 值?:

    Dim fk = Faker.Create()
    Dim acct = fk.Generate(Of Account)

伪作者 bchavez 在 https://github.com/bchavez/Bogus/issues/394.

提供的解决方案
Sub Main
   Dim personFaker = New Faker(Of Person)
   personFaker.RuleFor(Function(p) p.Firstname, Function(f) f.Name.FirstName)
              .RuleFor(Function(p) p.Lastname, Function(f) f.Name.LastName)
              .RuleFor(Function(p) p.ID, Function(f) f.Random.Int(1000,10000).ToString)

   Dim accountFaker = New Faker(Of Account)
   accountFaker.RuleFor(Function(a) a.AccountNumber, Function(f) f.Random.Replace("###############"))
               .RuleFor(Function(a) a.Owners, Function(f) New List(Of Person)(personFaker.GenerateBetween(1,5)))
   accountFaker.Generate().Dump()
End Sub

Class Person
   Property ID As String = Nothing
   Property Firstname As String = ""
   Property Lastname As String = ""
End Class

Class Account
   Property AccountNumber As String = ""
   Property Owners As New List(Of Person)
End Class