Я только начинаю переходить на memcached и в настоящее время тестировать с memcached.Есть ли все-таки для serilize объекта linq для Memcached?
У меня 2 объекта, я создал объект и поместить [Serializable] на нем (например, пусть называют это Object1
), другой объект создается с помощью Linq DBML (Object2
) ..
I попытался memcached List<Object1>
, он работает просто отлично, как шарм, все здесь кеш и загружается правильно.
Но тогда я перехожу к объекту Linq, теперь я пытаюсь добавить в memcached List<Object2>
, это не сработает, оно вообще не добавлено в memcached. ключ не был добавлен
Я перехожу и меняю режим сериализации на однонаправленный, добавьте еще раз, пока нет надежды.
Есть ли все, чтобы сделать эту работу?
Вот простой тест, который я только что написал, используя MemcachedProvider из CodePlex, чтобы продемонстрировать:
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);
}
это от Memcached, не STORE не называли:
> 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
И в моем SQL Profiler, он вызвал 3 запроса для 3-х тестового времени => Доказано, что возвращаемый объект из Memcached имеет значение null, затем он запрашивает.
Этот вопрос может извлечь выгоду из (1) Некоторые образцы кода (2) более четкое объяснение того, что происходит не так точно и (3) Как именно вы используете memcached из .NET. Есть несколько оболочек .NET, и они могут не все вести себя одинаково в этом отношении. –
Я добавил все, что вам нужно. Использование wraper im - MemcachedProvider из codeplex. Объект1 был успешно добавлен, но каким-то образом объект linq этого не сделал. – DucDigital
Дополнительная информация помогает, но я не вижу проблемы. Вы отлаживали вызов Add()? Как насчет использования прокси-сервера TCP или Wireshark, чтобы узнать, даже ли MemcachedProvider отправляет что-либо в memcached для этого запроса? –