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 } ); }
// 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()); }