Я пытаюсь создать канал на странице «Пользователи», где он будет отображаться, если пользователь недавно что-то понравился, создал элемент, прокомментировал сообщение и т. Д. Как мне это сделать? ? Я думал о том, чтобы создать список объектов различной информации, которую я получаю из своей базы данных, а затем упорядочить по дате, но я не могу правильно получить код.Создание фида событий, упорядоченных по дате
ответ
Хорошо, что я в конечном итоге делает что-то вдоль этих линий:
public class UserFeed
{
public string Type { get; set; }
public int Reference_Id { get; set; }
public int Comic_Id { get; set; }
public int Chapter_Id { get; set; }
public int Page_Id { get; set; }
public int User_Id { get; set; }
public string Title { get; set; }
public string Text { get; set; }
public decimal Rating { get; set; }
public string Image { get; set; }
public DateTime Date { get; set; }
}
List<UserFeed> userFeed = new List<UserFeed>();
userFeed.AddRange(user.SelectMany(i => i.UserFavorites).Select(i => new UserFeed { Type = "UserFavorite", Reference_Id = i.UserFavorite_Id, Comic_Id = i.Comic_Id, Title = i.Comic.Title, Image = i.Comic.ComicImage, Date = i.DateFavorited }).OrderByDescending(i => i.Date).Take(6));
userFeed.AddRange(Comics.SelectMany(i => i.ComicReviews).Select(i => new UserFeed { Type = "ComicReview", Reference_Id = i.ComicReview_Id, Comic_Id = i.Comic_Id, Title = i.Comic.Title, Text = i.Text, Rating = i.ComicRating.Rating, Image = i.Comic.ComicImage, Date = i.DatePublished }).OrderByDescending(i => i.Date).Take(6));
userFeed.AddRange(Comics.SelectMany(i => i.Chapters).Select(i => new UserFeed { Type = "Chapter", Reference_Id = i.Chapter_Id, Comic_Id = i.Comic_Id, Title = i.Title, Image = i.Comic.ComicImage, Date = i.DatePublished }).OrderByDescending(i => i.Date).Take(6));
userFeed.AddRange(Comics.SelectMany(i => i.Chapters.SelectMany(j => j.Pages)).Select(i => new UserFeed { Type = "Page", Reference_Id = i.Page_Id, Chapter_Id = i.Chapter_Id, Title = i.Title, Image = i.PageImage, Date = i.DatePublished }).OrderByDescending(i => i.Date).Take(6));
Как насчет:
var feed = db.Likes
.Where(like => like.UserID == currentUserID)
.Where(like => like.CreatedAt > createdSince)
.OrderByDescending(like => like.CreatedAt)
.Select(like => new {
Type = "like",
CreatedAt = like.CreatedAt
})
.Concat(db.Comments
.Where(comment => comment.UserID == currentUserID)
.Where(comment => comment.CreatedAt > createdSince)
.OrderByDescending(comment => comment.CreatedAt)
.Select(comment => new {
Type = "comment",
CreatedAt = comment.CreatedAt
})
);
Добавьте больше заявлений Concat по мере необходимости, до тех пор, как они проецируют на одной и той же структуры (либо Анон или фактический класс), вы можете объединить их в один список.
Если вам не нравится, имея одно огромное заявление, и есть класс для хранения предметов (например Feed
), а затем выберите первый и сделать .ToList()
, то вы будете иметь List<Feed>
, что вы можете назвать .AddRange(linqQueryThatReturnsFeedItems)
для каждого дополнительного набора предметов, которые вы хотите включить.
Просто отсортируйте по списку и предоставьте дополнительные фильтры. После того, как вы объедините их в один, вы можете отсортировать объединенный список.
я пытался делать что-то вдоль линий: http://pastebin.com/4WRYXntJ но я получаю 'не может конвертировать из ' System.Linq.IQueryable
Простое решение: создайте класс и внесите его в свой выбор вместо классов anon, например. 'Select (comment => new Feed {Title = comment.Title, CreatedAt = comment.DatePublished})', тогда вы сможете без проблем конкатрировать. –
- 1. Выберите уникальные записи упорядоченных по дате
- 2. Журнал событий по дате
- 3. Группа событий по дате
- 4. Создание фида активности профиля пользователя
- 5. Return top N строк, упорядоченных по дате после подключения таблицы
- 6. основная информация для чата аппликация выборка сообщений, упорядоченных по дате
- 7. объединение записей из двух таблиц в mysql, упорядоченных по дате
- 8. Как разбить столбец на несколько столбцов, упорядоченных по дате
- 9. Создание фида контента
- 10. Создание фида для сайта социальной сети
- 11. SQL для подсчета событий по дате
- 12. Сортировка событий по дате события - как?
- 13. Подсчет событий, сгруппированных по дате в python?
- 14. SAS - группировка и заказ событий по дате
- 15. Группировка по дате по дате по дате
- 16. создание упорядоченных выборов в MATLAB
- 17. Внедрение фида событий - будет ли оно масштабироваться?
- 18. Создание отчетов и сортировать по дате
- 19. Создание индекса Oracle из упорядоченных данных
- 20. Список авторов, упорядоченных по last_name
- 21. Python: создание всех упорядоченных комбинаций списка
- 22. Создание настраиваемого фида для Facebook на сайте
- 23. Создание фида с act_as_taggable_on в Rails
- 24. Получение общественного фида событий с фотографиями людей, которые прокомментировали
- 25. сообщений Сортировка по дате
- 26. Создание схемы базы данных для разобранного фида
- 27. Создание json-схемы для упорядоченных фасонных фасонов
- 28. Создание упорядоченных карт тепла в qplot (ggplot2)
- 29. Powershell Scripting относительно дат по дате по дате
- 30. Группа Sql по дате и дате по дате ввода
Не забудьте добавить 'userFeed = userFeed.OrderByDescending (feed => feed.Date)' в конце, чтобы отсортировать весь список, если вы не хотите, чтобы блок «Избранное» сопровождался блоком «Обзоры» и т. Д. –