Я думаю, что это зависит от того, где и как вы храните данные.
Если вы храните данные в базе данных SQL, должно быть 3 таблицы, содержащие данные пользователя User, UserAuth, UserOAuthProvider
. Большинство пользовательских данных, которые вы хотите, вероятно, будут находиться в таблице UserAuth. По крайней мере, это таблица, которая, как представляется, в основном ссылается на «OrmLiteAuthRepository». Чтобы вернуть список пользователей (List<UserAuth>
) с помощью OrmLite вы могли бы сделать
using (IDbConnection con = DbConnectionFactory.OpenDbConnection())
{
var users = con.Select<UserAuth>();
}
Или использовать любые ваши предпочтительный способ доступа является.
Если вы не используете базу данных SQL, она будет отличаться. Я думаю, вы можете сделать что-то вроде Redis. Я не думаю, что «конфигурация» прямолинейна, но похоже, что вы начинаете с обращения к хэшу. Существует два варианта для «HashId». Используйте 'hash:UserAuth:Email>UserId
', когда адрес электронной почты является ключом и 'hash:UserAuth:UserName>UserId
', когда имя пользователя является ключом. FYI, эти значения могут измениться, но я не знаю, как получить доступ к ним через код ServiceStack.
using (IRedisClient client = RedisClientManager.GetClient())
{
var userskeys = client.GetHashKeys("hash:UserAuth:Email>UserId").ToList();
var users = userskeys.Select(k => client.As<UserAuth>().GetById(k)).ToList();
}
Спасибо за ваш ответ. Я думал, что в ServiceStack есть стандартный способ, который работает с каждым репозиторием. Я использую RavenDB, поэтому это должно быть легко. – dna