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