Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用带有redis服务堆栈库的f#类的奇怪行为_F#_Redis - Fatal编程技术网

使用带有redis服务堆栈库的f#类的奇怪行为

使用带有redis服务堆栈库的f#类的奇怪行为,f#,redis,F#,Redis,我正在使用.Net测试一点redis,我已经阅读了本教程 接着使用c#并完美地工作,现在当我尝试将其转换为f#时,我有一个奇怪的行为,首先我创建了一个简单的f#类(使用类型也不起作用,但它是预期的)…基本上,该类是这样的: //I ve used [<Class>] to type Video (id : int, title : string , image : string , url : string) = member this.Id = id member this

我正在使用.Net测试一点redis,我已经阅读了本教程 接着使用c#并完美地工作,现在当我尝试将其转换为f#时,我有一个奇怪的行为,首先我创建了一个简单的f#类(使用类型也不起作用,但它是预期的)…基本上,该类是这样的:

//I ve used [<Class>] to
type Video (id : int, title : string , image : string , url : string) =
  member this.Id = id
  member this.Title = title
  member this.Image = image
  member this.Url = url
//我用[]来
键入视频(id:int,标题:string,图像:string,url:string)=
成员this.Id=Id
成员名称:this.Title=Title
成员:this.Image=Image
成员:this.Url=Url
当我运行代码时,我的db会保存一个空数据,如果我在f代码中使用c类,那么这会起作用,因此我确信问题出在f类……如果没有f代码中的c代码,如何解决这个问题


谢谢

根据您的教程,您似乎希望F#Video类充满getter和setter属性,而不是像现在这样只有getter的构造函数(这是一个类,您可以通过FSI运行它来验证)

您可以使用一个充满可变字段的记录类型(它被编译成一个充满公共getter和setter的类类型)来实现这一点:


您可以先向我们展示失败的代码!(DB访问)-我猜您的DRM希望它的类型是可变的,有一个没有参数的构造函数或一些特殊属性。我猜也是可变类型。我在尝试将一些F#代码与RavenDB接口时遇到了一个非常类似的问题。
type Video = { 
    mutable Id : int
    mutable Title : string
    mutable Image : byte[]
    mutable Url : string
}