[英]Why does Redis C# client method .getById() return null?
I'm building a simple blog application in Asp.Net MVC and I want to use a Redis database. 我正在Asp.Net MVC中构建一个简单的博客应用程序,我想使用Redis数据库。
I have created a repository for my Users class that contains a few methods (create, getbyid and update). 我为Users类创建了一个存储库,其中包含一些方法(create,getbyid和update)。 The probelm is the GetById(long id) method.
probelm是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;
}
}
}
Why does this method returnUser = redisUsers.GetById(id);
为什么这个方法
returnUser = redisUsers.GetById(id);
always return null? 总是返回null? I've been trying to find an answer on StackOverflow and other places but I couldn't.
我一直试图在StackOverflow和其他地方找到答案,但我不能。
The GetById()
API (and all other ServiceStack.Redis Typed Client APIs) expect the POCOs to have a unique Id in an Id
property. GetById()
API(以及所有其他ServiceStack.Redis类型客户端API)期望POCO在Id
属性中具有唯一ID。
So you should change your User model to use Id
instead of UserId
. 因此,您应该将用户模型更改为使用
Id
而不是UserId
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.