新しいF#レコードを保存すると、RavenDbドキュメントに[email protected]
という余分な列が表示され、コードをロードまたは表示すると表示されます。私のF#APIを通してJSONに変換さえさえしています。私はそれを保存することは非常にエキサイティングな何もしていないよF#で余分なID列を追加してRavenDbにレコードを保存
type Campaign = { mutable Id : string; name : string; description : string }
:ここ
は私のF#レコードタイプのレコードの新しいインスタンスを保存する
let save c : Campaign =
use session = store.OpenSession()
session.Store(c)
session.SaveChanges()
c
はIDを持つ文書を作成しますcampaigns/289
です。ここでRavenDbにおける文書の完全な値は次のとおりです。私はC#で、この同じデータベース(およびドキュメント)を使用する場合
{
"[email protected]": "campaigns/289",
"name": "Recreating Id bug",
"description": "Hello StackOverflow!"
}
、私は余分な[email protected]
値を取得できませんでした。これは、レコードは、私はC#で、それを保存したときのようになります。
{
"Description": "Hello StackOverflow!",
"Name": "Look this worked fine",
}
(脇 - 「名前」対「名前」私は私の文書に2名の列を持っていることを意味し、私は、少なくとも、その問題を理解しています。)。
私の質問は:RavenDbにF#レコードを保存すると、[email protected]
の余分なプロパティが作成されるのを避けるにはどうすればよいですか?
待ち時間、その列が「余分な」理由は何ですか?あなたの 'Campaign'レコードの定義にはっきりと見ることができます。 –
C#オブジェクト定義には 'Id'プロパティもありますが、ドキュメント値として表示されないため、ドキュメントにアクセスするための値です。 F#で作成されたドキュメントには、特定のデータベースレコードを検索するために使用されるIDと、Id @というドキュメントのJSON値の両方があります。 C#のバージョンには、ドキュメント内に「余分な」JSON値がありません。 – Max