You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Bogus生成Account实例时如何应用已定义的Person.ID取值规则

方法1:显式定义Account的Faker规则(更灵活)

直接复用你已经写好的fakePerson实例生成符合ID规则的Person对象,填充到Account的Owners属性中,代码如下:

' 你原有定义的Person生成规则
Dim fakePerson = New Faker(Of Person)().
  StrictMode(False).
  Rules(Sub(c, p)
          p.ID = c.Random.Long(1000, 10000).ToString
          ' 可按需补充其他Person字段的生成规则
          p.Firstname = c.Name.FirstName()
          p.Lastname = c.Name.LastName()
        End Sub
)

' 新增Account类型的生成规则
Dim fakeAccount = New Faker(Of Account)().
  StrictMode(False).
  Rules(Sub(c, acc)
          acc.AccountNumber = c.Finance.Account() ' 按需自定义账号生成规则
          ' 生成1-3个符合规则的Owner,数量可自行调整
          acc.Owners = fakePerson.GenerateBetween(1, 3).ToList()
        End Sub
)

' 直接生成Account对象即可
Dim acct = fakeAccount.Generate()

方法2:全局注册规则(适配你原有写法)

如果你希望沿用Faker.Create().Generate(Of Account)的写法,可以提前把规则注册到全局配置中:

' 注册全局Person生成规则
Bogus.Faker.DefaultConfig.For(Of Person)().
  StrictMode(False).
  Rules(Sub(c, p)
          p.ID = c.Random.Long(1000, 10000).ToString
          p.Firstname = c.Name.FirstName()
          p.Lastname = c.Name.LastName()
        End Sub)

' 注册全局Account生成规则
Bogus.Faker.DefaultConfig.For(Of Account)().
  StrictMode(False).
  Rules(Sub(c, acc)
          acc.AccountNumber = c.Finance.Account()
          acc.Owners = c.Generate(Of Person)(count := c.Random.Int(1, 3)).ToList()
        End Sub)

' 就可以用你原有的代码生成符合规则的Account对象了
Dim fk = Faker.Create()
Dim acct = fk.Generate(Of Account)

两种方案的核心都是复用Person的ID生成规则,不需要重复编写逻辑。如果不同场景下Account的Owner数量、账号规则有差异,优先选择第一种方案;如果项目全局都用同一套生成规则,第二种方案更方便。


内容的提问来源于stack exchange,提问作者user3574075

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 03:36:00