首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ServiceStack RedisClient中组合多个IRedisTypedTransaction<T>

如何在ServiceStack RedisClient中组合多个IRedisTypedTransaction<T>
EN

Stack Overflow用户
提问于 2012-06-04 11:32:54
回答 1查看 392关注 0票数 1

我正在尝试实现事务性StoreRelatedEntities。因此,我需要从ITypedRedisClient或以下地址访问RedisClient:

代码语言:javascript
复制
using (var trans1 = redis.As<X>().CreateTransaction())
using (var trans2=  redis.As<Y>().CreateTransaction())
{
   .....
   trans1.Join(trans2); // :) Fantasy
   trans2.Commit(); 
}                

这是正确的方式吗?或者我不得不

代码语言:javascript
复制
using (var trans1=redis.As<X>().CreateTransaction())
{
  trans.QueueCommand(p => ((RedisClient)((RedisTypedClient<T>)p).NativeClient).AddRangeToList(.....);
}

还是我必须这么做?

代码语言:javascript
复制
using (var trans=redis.CreateTransaction())
{
   trans.QueueCommand(p=>p.As<X>()....); // Casting to Typed RedisClient in Command
   trans.QueueCommand(p=>p.As<Y>()....);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-04 13:13:49

这看起来是最简单的,所以我会选择:

代码语言:javascript
复制
using (var trans=redis.CreateTransaction())
{
   trans.QueueCommand(p=>p.As<X>()....); // Casting to Typed RedisClient in Command
   trans.QueueCommand(p=>p.As<Y>()....);
}

但是没有对/错,只要做你觉得舒服的事情就行了。每个客户端都继承或包含一个RedisNativeClient实例,该实例封装了与Redis服务器的tcp连接。不同类之间的关系如下:

代码语言:javascript
复制
- Contains instance of **RedisClient** accessible via [RedisClient](https://github.com/ServiceStack/ServiceStack.Redis/blob/master/src/ServiceStack.Redis/Generic/RedisTypedClient.cs#L36) property

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10876043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档