如何在linq中实现这样的功能。在我的linq代码中,它获得了答案userID不等于Question userid的最佳答案。这是为了过滤用户选择自己的帖子作为最佳答案。如果用户选择自己的答案作为最佳答案,则必须至少投票3次。
var AwardedAnswers = from u in context.userinfo
select new
{
u.user_userid,
u.user_username,
u.user_GravatarHash,
Answers = from ans in context.post
let QuestionUserID = (from q in context.post
where q.post_id == ans.post_parentid
select new
{
q.userinfo.user_userid
}).FirstOrDefault()
where ans.userinfo.user_userid == u.user_userid
&& !object.Equals(ans.post_parentid, null)
&& ans.post_isselected == true
//this is where my trouble is
//this filters answers made by the original poster
//This should filter unless the Vote count is higher then 2
&& (ans.userinfo.user_userid != QuestionUserID.user_userid)
select new
{
ans.post_id,
ans.post_parentid
}
};
答案 0 :(得分:3)
怎么样:
&& (ans.userinfo.user_userid != QuestionUserID.user_userid
|| ans.upvotes >= 3)
这只是猜测 - 我们不知道你的数据库结构是什么样的。