ServiceStack实体Id字段名称

Ser*_*kov 5 hash redis servicestack

我使用ServiceStack并希望将对象存储为Redis中的哈希值,并且无需序列化整个对象即可通过ID访问其部件(字段),因此我有一个问题:

  1. 有没有办法使用其他属性,然后"Id",标记id字段?我正在使用命名约定,其中id字段被命名为"class
    name + Id"​​.所以在User类中
    会有ItemId id字段,在Itemclass ItemId中等等.

  2. 是一种更新对象中已更改的属性的方法,而不将整个对象序列化为哈希,并且没有使用Redis的哈希命令进行低级操作?例如,通过使用某种lambdas.

 

User user=client.GetById(userId);
user.Name="New name";
client.Update<User>(user,u=>u.Name);
Run Code Online (Sandbox Code Playgroud)

myt*_*thz 5

是的,您可以使用ModelConfig覆盖默认值:

ModelConfig<User>.Id(x => x.UserId);
ModelConfig<Item>.Id(x => x.ItemId);
Run Code Online (Sandbox Code Playgroud)

在使用RedisClient之前,需要在启动时配置一次.