5

ServiceStackを使用しており、オブジェクトをハッシュとしてRedisに保存し、オブジェクト全体をシリアル化せずにIDでそれらの部分(フィールド)にアクセスしたいので、質問があります。

  1. idフィールドをマークするために、「Id」以外の他のプロパティを使用する方法はありますか?私は命名規則を使用しています。ここで、idフィールドは「
    classname+Id」のように名前が付けられています。したがって、UserクラスにはUserId idフィールドがあり、
    ItemclassにはItemIdなどがあります。

  2. オブジェクト全体をハッシュにシリアル化せずに、またRedisのハッシュコマンドを使用して低レベルの操作を行わずに、オブジェクトで変更されたプロパティを更新する方法はありますか?たとえば、ある種のラムダを使用します。

 

User user=client.GetById(userId);
user.Name="New name";
client.Update<User>(user,u=>u.Name);
4

1 に答える 1

5

はい、 ModelConfigを使用してデフォルトをオーバーライドできます。

ModelConfig<User>.Id(x => x.UserId);
ModelConfig<Item>.Id(x => x.ItemId);

これは、RedisClientを使用する前に、起動時に一度構成する必要があります。

于 2012-09-08T21:20:48.123 に答える