0 votes

Linq : Où x = 1 Sauf si y > 3

Comment puis-je mettre en œuvre quelque chose comme ça en linq. Dans mon code linq, il obtient les meilleures réponses lorsque l'identifiant de la réponse n'est pas égal à l'identifiant de la question. Ceci est censé filtrer les utilisateurs qui choisissent leur propre message comme meilleure réponse. Si l'utilisateur choisit sa propre réponse comme meilleure réponse, celle-ci doit être upvoted au moins 3 fois.

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
                               }

                      };

2voto

Jon Skeet Points 692016

Pourquoi pas :

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

Ce n'est qu'une supposition - nous ne connaissons pas la structure de votre base de données en matière de votes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X