我正在使用LINQ在asp mvc中进行服务层实现。例如,有像Stackoverflow这样的用户,帖子和投票。每个用户都有从upvotes和downvotes获得的声誉。
此投票表具有以下属性:id,postTypeId,voteTypeId,creationDate,VoterId
此Post表具有以下属性:id,userId ....
和用户表包括:id
对于每个upvote给出2个标记,对于每个downvote 1标记减少
我需要如何用Linq编写查询如何查询,以显示声誉变化: 每个日期,时间和日期的声誉,无论是upvote还是downvote和相关帖子
这些是我要使用的属性,
var jointable = from vote in _dataContext.Votes
join post in _dataContext.Posts on vote.PostId equals post.Id
where vote.VoterId== id
select new
{
vote.Id,
vote.CreationDate,
vote.PostId,
vote.VoteTypeId,
post.PostTypeId,
post.Title,
post.IsAnonymous
};
在此之后,有人可以帮我查询这些属性以将它们作为对象返回吗?
答案 0 :(得分:0)
你已经离你已经不远了,你只需要日期范围条件,即
var startDate = ...; // assume this will be selected from the UI
// assuming we are working with UTC (if you aren't, you should be)
startDate = startDate.ToUniversalTime();
var endDate = startDate.AddHours(24); // include full 24 hour day
var jointable = from vote in _dataContext.Votes
join post in _dataContext.Posts on vote.PostId equals post.Id
where vote.VoterId == id && vote.CreationDate >= startDate && vote.CreationDate < endDate
select new
{
vote.Id,
vote.CreationDate,
vote.PostId,
vote.VoteTypeId,
post.PostTypeId,
post.Title,
post.IsAnonymous
};