public Task <List <WordResponse> > GetRandomWordsAsync(AnfDbContext dbContext, int count) { return(dbContext.Words #if DBSELECT_MYSQL || DBSELECT_MSSQL .FromSqlRaw("SELECT t1.* FROM Words t1 JOIN (SELECT RAND() * (SELECT MAX(Id) FROM Words) AS nid) t2 ON t1.Id > t2.nid") #elif DBSELECT_SQLITE .FromSqlRaw("SELECT t1.* FROM Words t1 JOIN (SELECT abs(random() / 9.2233720368547799E+18) * (SELECT MAX(Id) FROM Words) AS nid) t2 ON t1.id > t2.nid limit {0}", count) #else #error No random get body #endif .Take(count) .Select(x => new WordResponse { AuthorId = x.AuthorId, Id = x.Id, CommitType = x.CommitType, CreateTime = x.CreateTime, CreatorId = x.CreatorId, From = x.From, Length = x.Length, Text = x.Text, Type = x.Type, LikeCount = x.LikeCount, VisitCount = x.VisitCount, AuthorName = x.Author == null ? null : x.Author.UserName, CreatorName = x.Creator.UserName }) .ToListAsync()); }
public VisitStatisticalService(AnfDbContext dbContext, IDatabase database) : base(dbContext, database) { }
public WordUserStatisticalService(AnfDbContext dbContext, IDatabase database) : base(dbContext, database) { }
protected StatisticalService(AnfDbContext dbContext, IDatabase database) { DbContext = dbContext; Database = database; }
public WordDataAccessor(AnfDbContext dbContext, IOptions <WordCacheOptions> options) { DbContext = dbContext ?? throw new ArgumentNullException(nameof(dbContext)); Options = options ?? throw new ArgumentNullException(nameof(options)); }