Как разработать сайт MVC ASP.NET для кэширования со Скоростью?

include работает только с массивом ... но в вашем случае вы не используете include () для массива, поэтому он не работает. используя эту

for(const requests of product.requests)

, вы выбираете эту нижнюю часть всего массива

       { _id: 5c3ed473dee9b803b2282cc6,
       userId: 5c375260a6f58308e510711a,
       firstName: 'Joe',
       motivation: 'some text' }

, после чего, используя эту строку

if (requests.userId.includes(userId)

, вы пытаетесь использовать не массив объектов как массив, который является неправильным. попробуйте просмотреть запросы. пользователь. это означает, что вы обращаетесь к ранее выбранному свойству объекта userId. таким же образом use может получить доступ ко всем данным этого объекта, как этот

 <% for(const requests of product.requests) { %>
    requests.motivation
    requests.firstname
    requests._id 
 <% } %>

, как мудрый ... Итак, чтобы достичь того, что вы хотите, вы можете использовать такой подход ... учитывая, что у вас есть userID , который вы хотите проверить по значению, которое вы ищете в этом массиве объектов, попробуйте сделать это следующим образом.

<% for(const requests of product.requests) { %>
  <% if (requests.userId.toString()==userId) ) { %>
    //User exists.. now you can do what you want if the user exists
  <% } %>
<% } %>

проблема была в том, как вы думаете о массиве объектов и обращаетесь к нему. Это должно решить вашу проблему ...:)

5
задан PhilPursglove 22 August 2009 в 11:42
поделиться

4 ответа

У Stephen Walther есть большая статья о том, как сделать это

ASP.NET подсказка MVC № 39 – использует скорость распределенный кэш

6
ответ дан 13 December 2019 в 19:37
поделиться

@dswatic:Большое спасибо. похоже, что я могу добавить кэширование позже с минимальной болью. Вот важное предупреждение от того сайта хотя:

"При использовании Объектного Реляционного Разработчика для генерации LINQ к классам SQL затем LINQ к классам SQL не будет сериализуемым. Для работы вокруг этой проблемы я создал свой LINQ к классам SQL вручную".

Только сериализуемые объекты могут кэшироваться со Скоростью.

Еще раз спасибо.

1
ответ дан 13 December 2019 в 19:37
поделиться

dswatik предоставил большую ссылку на то, как использовать его.

Я предложил бы добавить эту функциональность где-нибудь в Вашем Репозитории/Уровне служб, чтобы снять нагрузку приложения и остаться в принципе DRY.

3
ответ дан 13 December 2019 в 19:37
поделиться

The selected answer is for the Velocity CTP1. Here is the MSDN link for the latest Velocity Programming Guide.

As to your other question about design decisions, Chad Moran's suggestion to put the onus on the repository layer is great. Then, I would look at adding support for linq caching using a technique similar to the one described here: http://petemontgomery.wordpress.com/2008/08/07/caching-the-results-of-linq-queries/

Очевидно, вам придется написать реализацию, которая использует Velocity вместо ASP. NET Cache ... но на самом деле, если у вас нет статистики, подтверждающей, что вам нужно что-то вроде Velocity, вы, вероятно, можете придерживаться обычного кеша, пока это не станет проблемой. Если вы прислушаетесь к некоторым выступлениям Джоэла Спольски относительно stackoverflow, вы обнаружите, что два блока (один с iis, а другой с сервером sql) могут обрабатывать очень большой объем.

]
1
ответ дан 13 December 2019 в 19:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: