Existe uma maneira de serilizar o objeto linq para o Memcached?
Estou apenas começando a mudar para o memcached e atualmente testando com o memcached.
Estou tendo 2 objetos, criei um objeto e coloquei [Serializable] nele (por exemplo, vamos chamar issoObject1
), o outro objeto é criado usando o Linq DBML (Object2
) ..
Eu tentei memcachedList<Object1>
, funciona bem, como charme, tudo aqui é armazenado em cache e carregado corretamente.
Mas então, passo para o objeto Linq, agora tento adicionar ao memcachedList<Object2>
isso não funciona, não foi adicionado ao memcached. nenhuma chave foi adicionada
Vou em frente e mudo o Modo de serialização para Unidirecional, faço o add novamente, ainda sem esperança.
Existe alguma maneira de fazer isto funcionar?
Aqui está o teste simples que acabei de escrever, usando o MemcachedProvider do codeplex para demonstrar:
public ActionResult Test()
{
var returnObj = DistCache.Get<List<Post>>("testKey");
if (returnObj == null)
{
DataContext _db = new DataContext();
returnObj = _db.Posts.ToList();
DistCache.Add("testKey", returnObj, new TimeSpan(29, 0, 0, 0));
_db.Dispose();
}
return Content(returnObj.First().TITLE);
}
isto é do Memcached, nenhuma LOJA foi chamada:
> NOT FOUND _x_testKey
>532 END
<528 get _x_testKey
> NOT FOUND _x_testKey
>528 END
<516 get _x_testKey
> NOT FOUND _x_testKey
>516 END
E no meu perfilador de SQL, ele chamou 3 consultas por 3 tempos de teste => Provou que o objeto chamado de volta do Memcached é nulo e, em seguida, consulta.