[fix] 修正GetAll时没有接受null数据的问题。fix: https://gitee.com/NewLifeX/NewLife.Redis/issues/ICH8B9
This commit is contained in:
parent
abc755279d
commit
45f840fad2
|
@ -1084,6 +1084,10 @@ public class RedisClient : DisposeBase
|
||||||
{
|
{
|
||||||
dic[keys[i]] = (T?)Host.Encoder.Decode(pk, typeof(T));
|
dic[keys[i]] = (T?)Host.Encoder.Decode(pk, typeof(T));
|
||||||
}
|
}
|
||||||
|
else if (rs[i] == null)
|
||||||
|
{
|
||||||
|
dic[keys[i]] = default;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return dic;
|
return dic;
|
||||||
|
|
|
@ -583,4 +583,27 @@ public class RedisTest
|
||||||
ic.Remove(key);
|
ic.Remove(key);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void GetAllWithNull()
|
||||||
|
{
|
||||||
|
var rds = _redis;
|
||||||
|
|
||||||
|
var user = new User { Name = "NewLife" };
|
||||||
|
User user2 = null;
|
||||||
|
rds.Set("user", user, -1);
|
||||||
|
rds.Set("user2", user2, 3600);
|
||||||
|
|
||||||
|
var uservalue = rds.Get<User>("user");
|
||||||
|
var user2value = rds.Get<User>("user2");
|
||||||
|
|
||||||
|
var keys = new[] { "user", "user2" };
|
||||||
|
var values = rds.GetAll<User>(keys);
|
||||||
|
|
||||||
|
// 应该返回2个值,但是GetALl()这里只返回一个key的值
|
||||||
|
Assert.True(values.Count >= 2);
|
||||||
|
Assert.NotNull(values["user"]);
|
||||||
|
Assert.Null(values["user2"]);
|
||||||
|
Assert.Equal(user.Name, values["user"].Name);
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue