我正在試驗RavenDB。我們有裝飾有屬性按照以下(簡單)例如實體對象的顯著數:覆蓋Json序列化RavenDB
[Entity(UniqueID = "37AA8322-597D-48E8-BB66-7B2796103D95")]
public class SampleEntity : Entity
{
protected SampleEntity()
{
}
public static SampleEntity Create()
{
return EntityFactory.Create<SampleEntity>();
}
[Property]
public virtual int Integer { get; set; }
}
通過EntityFactory發射的類型實際上是一個亞類SampleEntity的將覆蓋設置器/吸氣劑自動執行INotifyPropertyChanged並跟蹤每個屬性的最後修改時間(等等)。
使用Json.NET我扔在一起的JSON序列化的實體,其爲SampleEntity與「整數」設置爲8的情況下會吐出類似下面的東西:
{
"TypeID": "\"37aa8322-597d-48e8-bb66-7b2796103d95\"",
"UniqueID": "\"e1f03e21-260f-4bde-8bfb-ec7a47b2e379\"",
"Integer": {
"Last Set": "2014-09-30T14:06:08.9146417Z",
"Value": "8"
}
}
注意如何「整數'屬性得到擴展,包括'價值'和'最後一套'。如果我要求RavenDB存儲一個SampleEntity,我(如預期的)不會將'Last Set'與'Value'內聯(在基類中有一個字典映射屬性名稱到屬性信息,一個字段是物業最後一次設置)。
理想情況下,我想存儲我在RavenDB中編寫的Json-Entity序列化程序的輸出(以及爲每個實體自動生成的UniqueID作爲文檔ID)。當我檢索一個文檔時,它將是原始的json,我將負責使用它來保存合適的實體對象。我已經廣泛搜索,並找不到一個簡單的方法來實現這一點,歷史上這意味着我試圖做一些愚蠢的事情。
我對RavenDB(一般的文檔數據庫)和Json都是新手,所以也許我試圖在這裏把一個方形的釘子塞進一個圓孔,並且有一種更加優雅的方式來處理這種情況。
有沒有人知道在RavenDB中存儲原始json的方法?或者在另一種方式上有任何意見/建議可以完成我所描述的內容?