RavenDb를 사용하여 이벤트 관리자를 개발 중입니다. 기록 된 사용자는 따라 오는 장소에 게시물을 작성한 다음 사용자 벽 (홈 페이지)의 모든 게시물을 볼 수 있습니다. 모든 게시물은 '좋아요'및 '즐겨 찾기'로 표시 될 수 있습니다. 트위터 또는 페이스 북과 같은 작은 구조.RavenDb -id 목록에서 목록 가져 오기
내가 팔로우하는 장소에서 게시물을 가져 오는 가장 좋은 방법은 무엇입니까? 좋아요 및 즐겨 찾기 수를 가져와야하며 이미 뷰를 표시하고 목록을 표시하려면 뷰 모델에 해당 게시물을 표시해야합니다. 나는 이런 식으로 노력하고있어하지만 최대 요청 예외 던져.
var myPlaces = this.SessionDb.Query<EventFollow>()
.Where(ls => ls.UserId == User.Identity.Name)
.Select(l => l.PlaceId);
var listPosts = this.SessionDb
.Advanced.LuceneQuery<Post>().WhereIn("PlaceId", myPlaces)
.Skip(skip)
.Take(20)
.ToList();
List<PostViewModel> posts = new List<SpottedViewModel>();
foreach (var p in listPosts)
{
PostViewModel vm = new PostViewModel();
vm.Creator = p.UserCreatorId == User.Identity.Name;
vm.Like = this.SessionDb.Query<Lol>().Where(lol => lol.SpottedId == p.Id).Count();
vm.Favourites = this.SessionDb.Query<Favourite>().Where(fa => fa.SpottedId == p.Id).Count();
vm.Post= s;
vm.IsLike = this.SessionDb.Query<Like>().FirstOrDefault(l => l.PostId == p.Id) != null;
vm.IsFavourite = this.SessionDb.Query<Favourite>().FirstOrDefault(f => f.SpottedId == s.Id) != null;
posts.Add(vm);
}
나는이 모델이 있습니다
public class Post
{
public string Id { get; set; }
public string UtenteCreatorId { get; set; }
public string PlaceId { get; set; }
public string Body{ get; set; }
}
public class Lol
{
public string Id { get; set; }
public string PostId { get; set; }
public string UserId { get; set; }
}
public class Place
{
public string Id { get; set; }
public string UserCreatorId { get; set; }
public string Name{ get; set; }
}
public class Favourite
{
public string Id { get; set; }
public string PostId { get; set; }
public string UserId { get; set; }
}
public class EventFollow
{
public string Id { get; set; }
public string PlaceId { get; set; }
public string UserId { get; set; }
}
내 영어 주셔서 감사하고 죄송합니다! ; D
네, 그러나 RavenDb Group (Google)에서 한 전문가는이 데이터 모델이 결국 좋아하는 것 또는 좋아하는 것에 대한 선례보다 더 우수하다고 말했습니다. – Stefano
그건 나에게 놀라운 일입니다. 토론에 대한 링크가 있습니까? –
https://groups.google.com/forum/#!topic/ravendb/vclQkOKBjJU – Stefano