0

我如何在 linq 中实现这样的东西。在我的 linq 代码中,它会在答案用户 ID 不等于问题用户 ID 的情况下获得最佳答案。这是为了过滤用户选择他们自己的帖子作为最佳答案。如果用户选择了他们自己的答案作为最佳答案,那么它必须至少被投票 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
                               }

                      };
4

1 回答 1

3

怎么样:

 && (ans.userinfo.user_userid != QuestionUserID.user_userid
     || ans.upvotes >= 3)

不过,这只是一个猜测——我们不知道你的数据库结构是什么样的。

于 2010-02-08T06:58:03.883 回答