Web 中的服务堆栈 Redis Api OData 添加 EdmEntityObject / EdmEntityObjectCollection
Service Stack Redis in Web Api OData add EdmEntityObject / EdmEntityObjectCollection
我们能够将普通的 POCO class 添加到服务堆栈 Redis 客户端
IRedisTypedClient<Product> objRedisTypedClientNB = redisClient.As<Product>();
IRedisList<Product> objRedisListNB = objRedisTypedClientNB.Lists["Product"];
Product objNews = new Product(DateTime.Now.Ticks.ToString());
objRedisTypedClientNB.Lists["Product"].Push(objNews);
将产品对象添加到 redis 缓存就可以了
使用动态网络api odata v4 服务时,
元数据是在运行时根据 url
为每个请求创建的
如何将EdmEntityObject / EdmEntityObjectCollection 添加到redis
EdmEntityObject objEntityObject = new EdmEntityObject((EdmEntityType)objEntityType);
objEntityObject.TrySetPropertyValue("Id", "test id");
IRedisTypedClient<EdmEntityObject> objRedisTypedClientEEOC = redisClient.As<EdmEntityObject>();
IRedisList<EdmEntityObject> objRedisListEEOC = objRedisTypedClientEEOC.Lists["EntityName"];
objRedisTypedClientEEOC.Lists["EntityName"].Add(objEntityObject); // throws error
错误
未知模块中发生 'System.WhosebugException' 类型的未处理异常。
- 如何解决错误
- 如何将 EdmEntityObject / EdmEntityObjectCollection 的实例添加到 redis 缓存中
注意:
1. 不应使用 POCO classes
2. ODataModel 本身仅在运行时创建
A System.WhosebugException
表示您正在尝试序列化具有循环依赖关系的不可序列化对象,这些对象在任何 ServiceStack 的序列化程序中都不支持(并且在大多数其他序列化程序中也会失败)。
本质上,EF 数据模型具有循环依赖性,这使得它们不适合序列化。相反,您应该让它们映射到可以序列化的干净 DTO,或者使用 OrmLite or Dapper 之类的任何 Micro ORM,将结果集映射到干净的 POCO 模型中。
作为一个目标 OrmLite ensures that all its features (inc. its Reference Support) 映射到清理断开连接的 POCO,因此它们始终是可序列化的,并且可以在服务 DTO 和其他 NoSQL 数据存储中重复使用。
我们能够将普通的 POCO class 添加到服务堆栈 Redis 客户端
IRedisTypedClient<Product> objRedisTypedClientNB = redisClient.As<Product>();
IRedisList<Product> objRedisListNB = objRedisTypedClientNB.Lists["Product"];
Product objNews = new Product(DateTime.Now.Ticks.ToString());
objRedisTypedClientNB.Lists["Product"].Push(objNews);
将产品对象添加到 redis 缓存就可以了
使用动态网络api odata v4 服务时, 元数据是在运行时根据 url
为每个请求创建的如何将EdmEntityObject / EdmEntityObjectCollection 添加到redis
EdmEntityObject objEntityObject = new EdmEntityObject((EdmEntityType)objEntityType);
objEntityObject.TrySetPropertyValue("Id", "test id");
IRedisTypedClient<EdmEntityObject> objRedisTypedClientEEOC = redisClient.As<EdmEntityObject>();
IRedisList<EdmEntityObject> objRedisListEEOC = objRedisTypedClientEEOC.Lists["EntityName"];
objRedisTypedClientEEOC.Lists["EntityName"].Add(objEntityObject); // throws error
错误 未知模块中发生 'System.WhosebugException' 类型的未处理异常。
- 如何解决错误
- 如何将 EdmEntityObject / EdmEntityObjectCollection 的实例添加到 redis 缓存中
注意: 1. 不应使用 POCO classes 2. ODataModel 本身仅在运行时创建
A System.WhosebugException
表示您正在尝试序列化具有循环依赖关系的不可序列化对象,这些对象在任何 ServiceStack 的序列化程序中都不支持(并且在大多数其他序列化程序中也会失败)。
本质上,EF 数据模型具有循环依赖性,这使得它们不适合序列化。相反,您应该让它们映射到可以序列化的干净 DTO,或者使用 OrmLite or Dapper 之类的任何 Micro ORM,将结果集映射到干净的 POCO 模型中。
作为一个目标 OrmLite ensures that all its features (inc. its Reference Support) 映射到清理断开连接的 POCO,因此它们始终是可序列化的,并且可以在服务 DTO 和其他 NoSQL 数据存储中重复使用。