Имя поля идентификатора сущностей ServiceStack
Я использую ServiceStack и хотел бы хранить объекты как хэши в Redis и получать доступ к их частям (полям) по идентификаторам без сериализации всего объекта, поэтому у меня есть вопросы:
Есть ли способ использовать другое свойство, кроме "Id", чтобы пометить поле id? Я использую соглашения об именах, где поле id называется как "класс
name+Id". Таким образом, в классе User будет поле идентификатора UserId, в
Itemclass ItemId и так далее.Есть ли способ обновить свойства, которые были изменены в объекте, без сериализации всего объекта в хэш и без низкоуровневых манипуляций с командой хэша Redis? Например, используя какие-то лямбды.
User user=client.GetById(userId);
user.Name="New name";
client.Update<User>(user,u=>u.Name);
1 ответ
Да, вы можете переопределить значение по умолчанию с помощью ModelConfig с помощью:
ModelConfig<User>.Id(x => x.UserId);
ModelConfig<Item>.Id(x => x.ItemId);
Это необходимо настроить один раз при запуске, прежде чем использовать RedisClient.