我在嘗試將我的類型的屬性映射到Cassandra中的映射時出現問題。F中的Cassandra CQL映射#
我有工作在C#,但我與F#掙扎
我得到的錯誤是:堆棧跟蹤:[System.ArgumentOutOfRangeException:表達式x =>新Tuple`2(x.Id,ToFSharpFunc (x => x.WithName(「player_id」)))不是屬性或字段。參數名稱:表達式]
第26行,如果我刪除了「fun(x:ColumnMap) - > x.WithName(」player_id「)」它會編譯,但不會映射到正確的表列。我的模型屬性名稱是「ID」,但我需要它映射到「player_id」
open Cassandra
open Cassandra.Mapping
open System
type Ranking =
{ Id : Guid
Alias : string
Kills : int
Deaths : int }
type Player = {Id: Guid; Alias: string; Dob: DateTime; FullName: string}
type CassyMappings() =
inherit Cassandra.Mapping.Mappings()
do
base.For<Player>()
.TableName("players")
.PartitionKey("player_id")
.Column(fun(x:Player)-> x.Id)
.Column(fun(x:Player)-> x.Alias)
.Column(fun(x:Player)-> x.FullName)
.Column(fun(x:Player)-> x.Dob) |> ignore
base.For<Ranking>()
.TableName("rankings")
.PartitionKey("player_id")
.Column(fun (x : Ranking) -> x.Id, fun(x:ColumnMap)->x.WithName("player_id"))
.Column(fun (x : Ranking) -> x.Alias)
.Column(fun (x : Ranking) -> x.Kills)
.Column(fun (x : Ranking) -> x.Deaths) |> ignore
MappingConfiguration.Global.Define<CassyMappings>()
printfn "Works fine!"
https://dotnetfiddle.net/8IiYhg
這裏是將C#http://www.datastax.com/dev/blog/csharp-driver-cassandra-new-mapper-linq-improvements
把你的代碼在實際的問題。此外,請解釋什麼「掙扎與F#的意思」 - 包括任何錯誤消息等 –
當然,沒問題..我創建了一個DotNetFiddle它[這裏](https://dotnetfiddle.net/8IiYhg) 我的錯誤是「堆棧跟蹤: [System.ArgumentOutOfRangeException:Expression x => new Tuple'2(x.Id,ToFSharpFunc(x => x.WithName(」player_id「)))不是屬性或字段 參數名稱:expression]「 –
在第26行,如果我刪除了」fun(x:ColumnMap) - > x.WithName(「player_id」)「它會編譯但不會映射到正確的表列。我的模型屬性名稱是「Id」,但我需要它映射到「player_id」 –