RavenDBに動的プロパティを持つオブジェクトを保存しようとしたときに問題が発生しましたRavenDBに動的プロパティを持つC#オブジェクトを格納する方法は?
保存しようとしているオブジェクトがオーダーを表しています。注文は注文ラインのリストが含まれていますので、次のOrderクラスを想像:
public class Order {
public int Id { get; set; }
public List<Orderline> Orderlines { get; set; }
}
そしてオーダーラインクラスビーイング:
public class Orderline {
public Product Product { get; set; }
public int Quantity { get; set; }
public dynamic Attributes { get; set; }
}
私が保存しようとしているオブジェクト(私はJSONでそれを表示します);
{
"Id": 0,
"Orderlines": [
{
"Product": {
"Id": 0,
"Name": "Some product"
},
"Quantity": 1,
"Attributes": {
"color": "Red"
}
}
]
}
...それはOrder.Orderlines[0].Attributes.color
の値プロパティが設定されていないことを
{
"Id": 0,
"Orderlines": [
{
"Product": {
"Id": 0,
"Name": "Some product"
},
"Quantity": 1,
"Attributes": {
"$type": "Newtonsoft.Json.Linq.JObject, Newtonsoft.Json",
"color": {
"$type": "Newtonsoft.Json.Linq.JValue, Newtonsoft.Json",
"$values": []
}
}
}
]
}
注意として何らかのエラーに
RavenDB店Orderオブジェクトをスローしません保存
私がしようオブジェクトを私のC#Orderオブジェクトにシリアル化します。次の例外があります。
タイプ のオブジェクトをキャストすることができません 'Raven.Imports.Newtonsoft.Json.Utilities.CollectionWrapper`1は[Newtonsoft.Json.Linq.JToken]' 'Newtonsoft.Json.Linq.JValue' と入力します。
私は間違っていますが、どうすればこのオブジェクトをRavenDBデータベースに保存して取得できますか?
http://stackoverflow.com/questions/24208510/ravendb-dynamic-objects関連性があります – stuartd
ダイナミックが必要なのはなぜですか?その解決策は、ダイナミクスを使用しないでください – Liam
@Liam私はカスタムプロパティを含むことができる汎用のOrderlineオブジェクトを用意しようとしています。これは関連性があります。将来的には、複数の製品で、アプリケーション固有のカスタム属性をAttributesプロパティ(この場合は色)に保存できる同じAPIを使用するようにしたいので、 – Bryandh