Json 提供的类型基因不适用于 "with"

Json Provided type gens don't work with "with"

这里有一个片段可以很好地演示我要讲的内容:

open FsCheck
open FsCheck.Gen
open FSharp.Data

type Test = JsonProvider<"""{"collection": [ { "Name": "Rob", "Age": 3 } ] } """>
let testGen () = 
  gen {
       let! name = Arb.generate<string>
       let! age  = Arb.generate<int>
       let colObj = Test.Collection(name, age)
       return Test.Root([|colObj|])
      }

let specialTestGen () = 
  gen {
       let! test = testGen ()
       let item = test.Collection.[0]
       let foo = item.Name
       let changedItem = {item with Name = "Chris"}
       return {test with test.collection = [|changedItem|]}
      }

我正在尝试生成一个包含某些字段的生成器。我可以将 out in 分配给 foo 集合实例的名称,但出于某种原因,我无法构建该结构的另一个略微修改的版本。它告诉我项目没有 属性 名称,当它前面的行清楚地显示时,它确实如此。出于某种原因,我不能在这些库中使用 "with" 语法吗?

类型提供程序目前只能提供普通的 .NET 类型,不能提供 F# 记录和可区分的联合。 {x with ...} 语法仅适用于 F# 记录。