2

ええ、私は別の奇妙な質問でここにいます:)

透過的な 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
            } 
        }
     }
}

任意のアイデアまたは代替方法..

4

1 に答える 1