Exemple #1
0
        public void ExpTest()//返回所指定浮点表达式的指数值。
        {
            using (var edm = new NorthwindEntities())
            {
                var cust1 = from e in edm.Order_Details
                            select SqlFunctions.Exp(1M);

                //EXP(1) AS [C1]
                cust1.TraceSql();
                Console.WriteLine(cust1.First());//2.71828182845905
            }
        }
        private IQueryable <SuggestionValue> RetrieveSuggestions(ApplicationUser user)
        {
            return(
                from sg in db.Suggestions
                join us in db.UserSuggestions.Include("Status")
                on sg.Id equals us.SuggestionId into us_sg
                from j in us_sg.DefaultIfEmpty()
                where
                (
                    (
                        j.Status != SuggestionStatus.Completed &&
                        j.Status != SuggestionStatus.NotToday &&
                        j.Status != SuggestionStatus.NeverAsk
                    )
                    ||
                    (
                        j.Status == SuggestionStatus.NotToday &&
                        SqlFunctions.DateDiff("day", j.DTAdded, SqlFunctions.GetDate()) > 1
                    )
                    &&
                    j.UserId == user.Id
                )
                select new SuggestionValue
            {
                Suggestion = sg,
                Value = SqlFunctions.Exp(
                    (
                        (
                            from q in
                            (
                                sg.Suggestions.Select(q => q.Question)
                            )
                            join uq in db.UserQuestions on q.Id equals uq.QuestionId
                            where uq.UserId == user.Id
                            select uq.Response
                        )
                        .DefaultIfEmpty()
                    )
                    .Select(i => SqlFunctions.Log(i + 0.000001))
                    .DefaultIfEmpty()
                    .Sum()
                    ),

                Status = j.Status
            }

                );
        }
Exemple #3
0
        // GET: api/Stories/rank/20
        public IQueryable <StorySearchVM> GetStoriesByRank(int top)
        {
            IQueryable <Story> stories = from s in db.Stories
                                         where s.StoryStatus == 1
                                         orderby SqlFunctions.Exp(s.RateCount == 0? 0 : (double)s.Score / s.RateCount) descending
                                         select s;

            List <StorySearchVM> storyVMs = new List <StorySearchVM>();
            StorySearchVM        storySearchVM;

            if (top > stories.Count())
            {
                top = stories.Count();
            }

            foreach (var story in stories.Take(top))
            {
                storySearchVM = new StorySearchVM(story);
                storyVMs.Add(storySearchVM);
            }

            return(storyVMs.AsQueryable());
        }
        // GET: api/Reviews/rank/20
        public IQueryable <ReviewVM> GetReviewsByRank(int top)
        {
            IQueryable <Review> reviews = from r in db.Reviews
                                          where r.ReviewStatus == 1
                                          orderby SqlFunctions.Exp(r.RateCount == 0? 0 : (double)(r.Score / r.RateCount)) descending
                                          select r;

            List <ReviewVM> reviewVMs = new List <ReviewVM>();
            ReviewVM        reviewVM;

            if (top > reviews.Count())
            {
                top = reviews.Count();
            }

            foreach (var review in reviews.Take(top))
            {
                reviewVM = new ReviewVM(review);
                reviewVMs.Add(reviewVM);
            }

            return(reviewVMs.AsQueryable());
        }