为什么 Redis C# 客户端方法 .getById() return 为空?
Why does Redis C# client method .getById() return null?
我正在 Asp.Net MVC 中构建一个简单的博客应用程序,我想使用 Redis 数据库。
我为我的用户 class 创建了一个存储库,其中包含一些方法(创建、getbyid 和更新)。问题是 GetById(long id) 方法。
using System;
using System.Collections.Generic;
using System.Text;
using ServiceStack.Redis;
using Domain.Entities;
using RedisDataLayer.AbstractRepository;
using System.Linq;
namespace RedisDataLayer.ConcreteRepository
{
public class UserRepository : IUserRepository
{
private readonly IRedisClient _redisClient;
public UserRepository(IRedisClient redisClient)
{
_redisClient = redisClient;
}
public User Create(User user)
{
var redisUsers = _redisClient.As<User>();
user.UserId = redisUsers.GetNextSequence();
redisUsers.Store(user);
return user;
}
public User GetById(long id)
{
var redisUsers = _redisClient.As<User>();
User returnUser;
returnUser = redisUsers.GetById(id);
return returnUser;
}
public User Update(User user)
{
var redisUsers = _redisClient.As<User>();
User savedUser = redisUsers.GetById(user.UserId);
savedUser.Username = user.Username;
savedUser.Password = user.Password;
savedUser.UserId = user.UserId;
foreach (var blogId in user.BlogIds)
{
savedUser.BlogIds.Add(blogId);
}
redisUsers.Store(savedUser);
return savedUser;
}
}
}
为什么这个方法 returnUser = redisUsers.GetById(id);
总是 return 无效?我一直试图在 Whosebug 和其他地方找到答案,但我找不到。
GetById()
API(以及所有其他 ServiceStack.Redis 类型的客户端 API)期望 POCO 在 Id
属性。
因此您应该将用户模型更改为使用 Id
而不是 UserId
。
我正在 Asp.Net MVC 中构建一个简单的博客应用程序,我想使用 Redis 数据库。
我为我的用户 class 创建了一个存储库,其中包含一些方法(创建、getbyid 和更新)。问题是 GetById(long id) 方法。
using System;
using System.Collections.Generic;
using System.Text;
using ServiceStack.Redis;
using Domain.Entities;
using RedisDataLayer.AbstractRepository;
using System.Linq;
namespace RedisDataLayer.ConcreteRepository
{
public class UserRepository : IUserRepository
{
private readonly IRedisClient _redisClient;
public UserRepository(IRedisClient redisClient)
{
_redisClient = redisClient;
}
public User Create(User user)
{
var redisUsers = _redisClient.As<User>();
user.UserId = redisUsers.GetNextSequence();
redisUsers.Store(user);
return user;
}
public User GetById(long id)
{
var redisUsers = _redisClient.As<User>();
User returnUser;
returnUser = redisUsers.GetById(id);
return returnUser;
}
public User Update(User user)
{
var redisUsers = _redisClient.As<User>();
User savedUser = redisUsers.GetById(user.UserId);
savedUser.Username = user.Username;
savedUser.Password = user.Password;
savedUser.UserId = user.UserId;
foreach (var blogId in user.BlogIds)
{
savedUser.BlogIds.Add(blogId);
}
redisUsers.Store(savedUser);
return savedUser;
}
}
}
为什么这个方法 returnUser = redisUsers.GetById(id);
总是 return 无效?我一直试图在 Whosebug 和其他地方找到答案,但我找不到。
GetById()
API(以及所有其他 ServiceStack.Redis 类型的客户端 API)期望 POCO 在 Id
属性。
因此您应该将用户模型更改为使用 Id
而不是 UserId
。