У меня есть этот запрос, который подсчитывает общее количество +1, сделанных пользователем на нашем сайте:
return db.tblGPlusOneClicks
.Where(c =>
c.UserID == UserID
&& c.IsOn
)
.Select(c=>c.URLID)
.Distinct()
.Count();
Данные получены из этой таблицы:
Простое количество отдельных URL, где IsOn = true
будет показывать количество страниц, которые у них есть + 1.Тем не менее, таблица также сохраняет, когда они что-то плюс-1, сохраняя значение в IsOn
как false.
Если I:
- Плюс одна моя домашняя страница
- Отключить одну мою домашнюю страницу
Это не должно расцениваться как плюс для этого пользователя в нашем запросе, так как последнее действие для этого URL для этого пользователя было убрать 1 плюс.Аналогично, если я:
- Плюс одна моя домашняя страница
- Отключу одну мою домашнюю страницу
- Плюс одну мою домашнюю страницу
- Отключу одну мою домашнюю страницу
- Плюс одна моя домашняя страница
Это должно учитываться в исходном запросе, так как последнее действие для этого URL было плюс 1.
Как я могу изменить свой запросподсчитать случаи, когда IsOn
равно true
и это было последнее известное действие для этого пользователя для этого URL?Я изо всех сил пытаюсь написать запрос, который делает это.