當我保存一個新的F#記錄時,我在RavenDb文檔中獲得了一個名爲[email protected]
的額外列,並且在代碼中加載或查看對象時顯示出來;它甚至通過我的F#API轉換爲JSON。在RavenDb中保存記錄並添加額外的Id列F#
這裏是我的F#記錄類型:
type Campaign = { mutable Id : string; name : string; description : string }
我沒有做任何事情非常令人興奮的保存:
let save c : Campaign =
use session = store.OpenSession()
session.Store(c)
session.SaveChanges()
c
保存記錄的新實例標識創建一個文檔的campaigns/289
。下面是該文件的RavenDb的全部價值:
{
"[email protected]": "campaigns/289",
"name": "Recreating Id bug",
"description": "Hello StackOverflow!"
}
現在,當我用C#這同一個數據庫(和文件),我沒有得到額外的[email protected]
值。這是一個創紀錄的樣子,當我在C#中保存它:
{
"Description": "Hello StackOverflow!",
"Name": "Look this worked fine",
}
(旁白 - 「名」與「名」是指我有2分名字列在我的文檔中我明白這個問題,至少)。
所以我的問題是:我如何擺脫額外[email protected]
屬性當我保存在RavenDb的F#記錄?
等一下,爲什麼那列是「額外的」?在「Campaign」記錄定義中,我可以清楚地看到它。 –
由於C#對象定義也具有'Id'屬性,但它不顯示爲文檔值 - 它是用於訪問文檔的值。用F#創建的文檔既有用於查找特定數據庫記錄的Id,也有用於查找名爲'Id @'的文檔中的JSON值; C#版本在文檔中沒有「額外的」JSON值。 – Max