Ejemplo n.º 1
0
 /// <summary>
 /// Determines whether the specified query can be cached.
 /// </summary>
 public virtual bool CanBeCached(DbQueryInfo queryInfo)
 {
     // This method is called before database call.
     // Cache only Persons.
     // return queryInfo.AffectedEntitySets.All(x => x.Name == "Person");
     return(true);
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Puts the result to cache.
        /// </summary>
        private void PutResultToCache(DbCacheKey key, object result, DbQueryInfo queryInfo)
        {
            var expiration = _commandInfo.Policy != null
                ? _commandInfo.Policy.GetExpirationTimeout(queryInfo)
                : TimeSpan.MaxValue;

            _commandInfo.Cache.PutItem(key, result, expiration);
        }
Ejemplo n.º 3
0
        public void AddSample_QueryInfo_DataObjectsToDatabase()
        {
            var qi          = new DbQueryInfo();
            var savedTime   = DateTime.Now;
            var sampleQuery = "sampleQuery";

            qi.SaveToLogDb(new QueryInfo(sampleQuery, savedTime));
            using (var db = new AllegroAppContext())
            {
                Assert.IsTrue(db.QueryInfo.Where(x => x.Querry == sampleQuery).Any());
                db.QueryInfo.Remove(db.QueryInfo.Where(x => x.Querry == sampleQuery).FirstOrDefault());
                db.SaveChanges();
            }
        }
Ejemplo n.º 4
0
 public override DbCachingMode GetCachingMode(DbQueryInfo queryInfo)
 {
     return(GetCachingStrategyFunc == null
         ? base.GetCachingMode(queryInfo)
         : GetCachingStrategyFunc(queryInfo));
 }
Ejemplo n.º 5
0
 public override TimeSpan GetExpirationTimeout(DbQueryInfo queryInfo)
 {
     return(GetExpirationTimeoutFunc == null
         ? base.GetExpirationTimeout(queryInfo)
         : GetExpirationTimeoutFunc(queryInfo));
 }
Ejemplo n.º 6
0
 public override bool CanBeCached(DbQueryInfo queryInfo, int rowCount)
 {
     return(CanBeCachedRowsFunc == null || CanBeCachedRowsFunc(queryInfo, rowCount));
 }
Ejemplo n.º 7
0
 public override bool CanBeCached(DbQueryInfo queryInfo)
 {
     return(CanBeCachedFunc == null || CanBeCachedFunc(queryInfo));
 }
Ejemplo n.º 8
0
 /// <summary>
 /// Gets the caching strategy for a given query.
 /// </summary>
 public virtual DbCachingMode GetCachingMode(DbQueryInfo queryInfo)
 {
     // Cache with invalidation.
     return(DbCachingMode.ReadWrite);
 }
Ejemplo n.º 9
0
 /// <summary>
 /// Gets the absolute expiration timeout for a given query.
 /// </summary>
 public virtual TimeSpan GetExpirationTimeout(DbQueryInfo queryInfo)
 {
     // Cache for 5 minutes.
     return(TimeSpan.FromMinutes(5));
 }
Ejemplo n.º 10
0
 /// <summary>
 /// Determines whether specified number of rows should be cached.
 /// </summary>
 public virtual bool CanBeCached(DbQueryInfo queryInfo, int rowCount)
 {
     // This method is called after database call.
     // Cache only queries that return less than 1000 rows.
     return(rowCount < 1000);
 }
Ejemplo n.º 11
0
        /// <summary>
        /// Puts the result to cache.
        /// </summary>
        private void PutResultToCache(DbCacheKey key, object result, DbQueryInfo queryInfo)
        {
            var expiration = _commandInfo.Policy != null
                ? _commandInfo.Policy.GetExpirationTimeout(queryInfo)
                : TimeSpan.MaxValue;

            _commandInfo.Cache.PutItem(key, result, expiration);
        }