.net 使用f#代码向couchbase数据库添加元素
嗨,我正试图从F#向couchbase数据库添加一个简单的文档,但是我在创建文档时遇到了一些问题 我只是简单地尝试了一种非常简单的方法,尝试将c#翻译成f#,它在文档定义之前工作得很好.net 使用f#代码向couchbase数据库添加元素,.net,f#,couchbase,.net,F#,Couchbase,嗨,我正试图从F#向couchbase数据库添加一个简单的文档,但是我在创建文档时遇到了一些问题 我只是简单地尝试了一种非常简单的方法,尝试将c#翻译成f#,它在文档定义之前工作得很好 open System open Couchbase type TestDoc(id : string, content : string) = interface IDocument with member this.Cas with get (): ui
open System
open Couchbase
type TestDoc(id : string, content : string) =
interface IDocument with
member this.Cas
with get (): uint64 =
failwith "Not Implemented"
and set (v: uint64): unit =
failwith "Not Implemented"
member this.Expiry
with get (): uint32 =
failwith "Not Implemented"
and set (v: uint32): unit =
failwith "Not Implemented"
member this.Id
with get (): string =
id
and set (v: string): unit =
failwith "Not Implemented"
member this.Token: Core.Buckets.MutationToken =
failwith "Not Implemented"
let t() =
let cluster = new Cluster()
let bucket = cluster.OpenBucket("beer-sample")
let document = TestDoc ("hei", null) :> Document<dynamic>
let res = bucket.Insert(document)
res
[<EntryPoint>]
let main argv =
printfn "Hello World from F#!"
0 // return an integer exit code
开放系统
开放式沙发床
类型TestDoc(id:string,content:string)=
接口i文档与
本局议员
使用get():uint64=
带有“未实现”的故障
和设置(v:uint64):单位=
带有“未实现”的故障
请记住,到期日
使用get():uint32=
带有“未实现”的故障
和设置(v:uint32):单位=
带有“未实现”的故障
成员:这个
使用get():字符串=
身份证件
和集合(v:字符串):单位=
带有“未实现”的故障
成员this.Token:Core.bucket.MutationToken=
带有“未实现”的故障
设t()
让cluster=newcluster()
让bucket=cluster.OpenBucket(“啤酒样本”)
让document=TestDoc(“hei”,null):>document
let res=bucket.Insert(文档)
物件
[]
让主argv=
打印fn“来自F#的世界你好!”
0//返回整数退出代码
编译器会抱怨“dynamic”关键字不存在吗?似乎很奇怪,因为它在c#中工作得很好。
dynamic
不是真正的类型。这只是C#中的一种特殊语法,它告诉编译器以特殊的方式处理这种类型的变量
当您在C#中声明某个动态
时,它得到的实际类型是对象
,在F#中称为obj
。因此,等价物将转换为文档
但我甚至不认为什么能起作用:你不能将你的类型强制转换为文档
,因为你的类型不是文档
的子类型(也就是说,不是从它继承的)。编译器会抱怨的
您需要将您的类型设置为文档
的子类型,或者,您可能打算转换为i文档
,这正是IBucket.Insert所期望的?现在我帮不了你了,因为不清楚你的意思