RavenDB动态对象
我的代码看起来像这样:
using (var session = DocumentStore.OpenSession()) { var dbItem = session.Load(item.Id); if (dbItem is DynamicJsonObject) { dbItem["PropertyName"] = "new value"; } session.SaveChanges(); }
我无法弄清楚的是如何更新dbItem的属性。
有谁知道该怎么办? 我试过直接访问属性名称,如下所示:dbItem.PropertyName我也试过转换为ExpandoObject,IDictionary等。 但似乎没有任何效果。
从Raven 2.5开始,对动态对象的支持似乎主要用于读取方面,并且在现有对象上设置属性并不容易,因为inheritanceDynamicObject
Raven.Abstractions.Linq.DynamicJsonObject
只实现了读取/调用动态合约的方法,如TryGetMember
, TryGetIndex
和TryInvokeMember
。 但没有像TrySetMember
这样的项目。
但是,如果转换为IDynamicJsonObject
它提供对可以操作的内部RavenJObject
访问。
此代码示例应说明如何:
上述就是C#学习教程:RavenDB动态对象分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
using (var session = store.OpenSession()) { dynamic entity = new ExpandoObject(); entity.Id = "DynamicObjects/1"; entity.Hello = "World"; session.Store(entity); session.SaveChanges(); } using (var session = store.OpenSession()) { var json = session.Load("DynamicObjects/1") as IDynamicJsonObject; json.Inner["Name"] = "Lionel Ritchie"; json.Inner["Hello"] = "Is it me you're looking for?"; session.SaveChanges(); } using (var session = store.OpenSession()) { dynamic loadedAgain = session.Load ("DynamicObjects/1"); Console.WriteLine("{0} says Hello, {1}", loadedAgain.Name, loadedAgain.Hello); // -> Lionel Ritchie says Hello, Is it me you're looking for?" }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1016280.html