У меня возникла проблема с тем, что я реализовал WCF-сервис, который использует объекты LINQ ... Для генерации содержимого ответа на вызов службы требуется большое количество LINQ/SQL выбирает ...Использование «кэшированных» объектов LINQ
Независимо от того, что служба не делает никаких обновлений или вставок в БД, поэтому я хотел бы реализовать своего рода «кеширование» объектов LINQ (также содержимое базы данных не растет миллионы ... в действительности это будет ограничено примерно 63 тысячами основных (с подзапросами), такими как User -> Orders)
Также ответ службы не должен содержать 100% данных up2date, поэтому обновления данных на заднем плане не должно быть ничего, чтобы думать об этом
Итак, в настоящее время мой план выглядит следующим образом:
- захватить все соответствующие таблицы из базы данных с помощью LINQ, так что есть все объекты «кэшированные» (функция ToList() должен сделать это, правильно ?)
- Заменить объект сущности с помощью своего рода смарт резьбе каждые Рентгеновские минут/часов (как раз захватывая данные из БД, блокировка в настоящее время в кэше Linq-DataContent и заменить его на новый ..)
Итак, как вы думаете ... как вы думаете, я должен/мог сделать это так? Мне действительно нужно увеличить время отклика службы, но оптимизация SQL (например, меньшее количество выборок) на самом деле не вариант для меня, так как все средства LINQ уже реализованы.
Заранее благодарен!
Спасибо! .. Ссылаясь на это: http://stackoverflow.com/questions/1707668/get-linq-to-preload-a-complete-table ... Как бы я это понял и использовать этот кеш. – David
Этот вопрос для L2S. Используйте Context.GetObjectByKey, чтобы избежать нового запроса, если объект уже находится в контексте. ** Но, как я уже сказал, это, вероятно, не медленная часть. Будьте осторожны, преждевременно не оптимизируйте. –