草庐IT

redis - 透明的 Redis Dal 与 serviceStack Redis

coder 2023-07-18 原文

是的,我在这里有另一个奇怪的问题:)

我尝试实现透明的 Redis 数据访问层。

我将加载 N*1 和 1*1 关系 Eagerly,N*N 和 1*N 关系 Lazily。

public class User
{
   public long CityId {get;set;} 

   [EagerLoading]
   [IgnoreDataMember]
   public City {get;set;}
}

public class City
{
  public ICollection<long> UserIds {get;set;}

  [LazyLoading]
  [IgnoreDataMember] 
  public ICollection<User> Users{get;set;}
}

CUD操作(Create,Update,Delete)没有问题。我可以存储完整的对象层次结构。

但我需要非类型化的 Get 方法来检索对象。

public class GenericRedisRepository
{
     public object Get(string objectUrn)
     {
        using (var r = RedisManager.GetReadOnlyClient())
        {
            var pocoObject=r.GetObject(objectUrn); // I COULD NOT FIND THIS METHOD
            foreach (var property in ReflectionHelper.GetEagerLoadingProperties(pocoObject))
            {
                // Fixup relations and load all EagerLoading properties recursively
            } 
        }
     }
}

任何想法或替代方式..

最佳答案

抱歉来晚了。我想知道为什么您坚持使用属性而不是本质上未序列化/反序列化的方法:

public class User
{
   public long Id { get; set; }
}

public class City
{
  public IEnumerable<long> UserIds { get; set; }

  public IEnumerable<User> GetUsers()
  {
      using (var userData = redis.As<User>())
          return userData.GetByIds(UserIds);
  }
}

这样您就可以在真正需要用户时通过调用 GetUsers() 来延迟加载用户:

var city = redis.As<City>().GetById(id);
...
var users = city.GetUsers();

关于redis - 透明的 Redis Dal 与 serviceStack Redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13522505/

有关redis - 透明的 Redis Dal 与 serviceStack Redis的更多相关文章

  1. ruby - RMagick 从图像中删除白色背景并使其透明 - 2

    我需要从此图像中删除白色背景并使背景透明。所以它只是导出为png的透明背景上的黑色勾号。例如转动进入有什么想法吗? 最佳答案 convertimage.png-matte-fillnone-fuzz1%-opaquewhiteresult.png用透明替换任何白色。模糊选项包括几乎是白色的任何东西。 关于ruby-RMagick从图像中删除白色背景并使其透明,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c

  2. UnityShader(六)透明效果 - 2

    一、如何实现透明效果在Unity中实现透明效果的方式有两种,其一是透明度测试,其二是透明度混合。透明度测试:这种方式不需要关闭深度写入,且实现机制非常简单粗暴。只要一个片元的透明度不满足条件(比如小于某个值),则该片元会被直接舍弃,否则就按照不透明物体的处理方式来处理。它产生的效果要么是完全不透明,要么是完全透明,并不是真正的半透明效果。透明度混合:这种方式会使用当前片元的透明度作为混合因子,与颜色缓冲中的颜色进行混合。这就需要关闭深度写入。而关闭深度写入意味着我们需要非常小心物体的渲染顺序,否则可能出现渲染问题。为什么要关注渲染顺序在之前的Shader中我们并没有关心过物体渲染顺序的问题。这

  3. 在保持文本不透明度的同时,可以使用仅使用HTML制作一个透明的容器? - 2

    我想在保持文本/图像不透明的同时使我的容器背景透明。只能使用HTML做到这一点吗?这是我的代码:看答案我看到了您的问题,如果我正确理解您,我想我知道您可以做什么。我注意到的一件事是,在我进一步走之前,看起来您正在使用引导程序代码。如果您更改了可能与此相关的CSS样式表,则可能会更好,更有效,也可能不会破坏整体代码的其他元素,但是让我们看看我的解决方案是否对您有效。基本上您想做的是:1)在您的HTML中编写一个“样式”标签,然后在其中放入样式(CSS)属性(您可以将其放入HTML代码的标题中以更好地跟踪它)。2)使用提供背景颜色的“RGBA”格式,并将其不透明度为“0”作为代码段的第四值。因此,

  4. javascript - 即时客户端图像到 webp 转换器......但 png 不透明 - 2

    这是将jpg或png转换为webp的工作代码谷歌的新图像格式平均比jpg或png小30-40%1.用Chrome打开2.设置质量3.在页面内放置图片4.等待(取决于大小..先尝试小图片)5.悬停图片查看大小差异6.要将其正确保存为webp,只需单击它基本上chrome添加了将图像/webp和质量添加到toDataURL函数的可能性canvas.toDataURL('image/webp',quality(0-1))压缩很棒。但我有一个小问题...png不透明..它会是什么?也许将Canvas设置为透明?怎么办?html,body{width:100%;height:100%;margi

  5. javascript - Phaser 3补间不透明度? - 2

    我正在尝试将Sprite从一点补间到另一点,并让它在移动时逐渐消失。我试过这个:consttween=game.tweens.add({targets:[log.sprite],x:fire.x,y:fire.y+(fire.height*0.2),opacity:0,duration:300,repeat:0,onComplete(){destroyLog(log);resolve();},});但这行不通。我很难找到适合Phaser3的API文档,所以我不确定应该在哪里寻找这些信息。 最佳答案 您可能应该使用alpha而不是op

  6. javascript - 如何使用 javascript/jQuery 获取透明元素的有效背景颜色 - 2

    基本上,我在页面上有一个元素可以插入多个不同的位置。它没有设置背景颜色,但根据插入位置的背景颜色,我可能想对其进行一些更改。我的问题是:如何为元素获取有效的背景色,即使该背景色可能是从父级继承的(可能一直到主体)。这是一个简化的示例,我想在其中找到.color-me的背景颜色what'smybackground-color?还有一个代码笔:http://codepen.io/evanhobbs/pen/FbAnL/ 最佳答案 考虑到一些(非常重要的)注意事项,这是可能的。zzzzBov在对问题的评论中很好地总结了它们:...thec

  7. javascript - jquery UI datepicker透明背景 - 2

    这似乎是一个常见问题,但我尝试了很多答案,但没有一个对我有用。我正在使用jqueryUI日期选择器。似乎有些不对劲。这就是我的看法。我在我的文件中包含了以下内容jquery-1.11.2.min.jsjquery-ui.min.js(版本1.11.4)jquery-ui.min.css(版本1.11.4)我也试过下面的css但没有用。.ui-datepicker{background:#fff!important;z-index:10000;}如何让它看起来正常? 最佳答案 我用基本的日期选择器主题和彩色背景(如果你愿意,也可以是透

  8. javascript - 使用Canvas将不透明像素变成白色 - 2

    我正在寻找一种方法来拍摄图像(Logo、应用程序图标等)并使用javascript/canvas将它们转换为白色(不包括透明度)。这是我想要的示例(显然使用静态图像):http://jsfiddle.net/4ubyj/ 最佳答案 CanvasAPI具有专门用于“仅在原始图像中不透明的像素上绘制”之类的合成方法。这比弄乱图像数据要容易得多。jsFiddle示例(现在带有内联图像)向@WilliamVanRensselaer最初的fiddle致敬。您想要的复合操作是source-in,这意味着“仅在绘制图像中不透明像素之上绘制我要绘制

  9. javascript - div悬停的不透明度 - 2

    到目前为止我已经得到了这段代码http://jsfiddle.net/Nq79H/1/但我想淡出图像以便只留下可见的文本。我需要更改javascript还是编写新的cssdiv?$('.text').hide().removeClass('text').addClass('text-js');$('.thumb').hover(function(){$(this).find('.text-js').fadeToggle();}); 最佳答案 ...butIwanttofadeouttheimageinordertoleaveonly

  10. javascript - three.js透明物体遮挡 - 2

    在three.js场景中,我希望有一个不可见的对象,但仍然遮挡场景中的其他对象,就好像它是可见的一样。three.js库可以做到这一点吗?这是一个例子:假设我有一个包含3个对象的three.js场景:对象a、对象b和对象c以及一个相机。我希望对象c对相机不可见,但仍然遮挡对象b...场景1:在场景1中,这是我希望相机看到的内容:场景2:在场景2中,这是我希望相机看到的内容:谁能告诉我使用一种技术来达到这样的效果? 最佳答案 是的,在three.js中你可以创建一个不可见的对象,但仍然像可见一样遮挡其他对象。为此,您需要使用three

随机推荐