public RepositoryBase( DatabaseContext db) { _db = db; #if DEBUG _db.Database.Log = o => System.Diagnostics.Debug.Write(o); if (_db.Database.Connection is SqlConnection) { (_db.Database.Connection as SqlConnection).StatisticsEnabled = true; } #endif }
public static void Attach( DatabaseContext db) { var json = MemoryCache.Default[nameof(EntityCache)] as string; if (!string.IsNullOrWhiteSpace(json)) { var entities = JsonConvert.DeserializeObject<CachedEntities>(json); if (entities != null) { foreach (var artist in entities.Artists) { db.Artists.Attach(artist); } foreach (var character in entities.Characters) { db.Characters.Attach(character); } foreach (var genre in entities.Genres) { db.Genres.Attach(genre); } foreach (var role in entities.Roles) { db.Roles.Attach(role); } foreach (var title in entities.Titles) { db.Titles.Attach(title); } foreach (var titleArtist in entities.TitleArtists) { db.TitleArtists.Attach(titleArtist); } foreach (var titleArtistCharacter in entities.TitleArtistCharacters) { db.TitleArtistCharacters.Attach(titleArtistCharacter); } foreach (var titleGenre in entities.TitleGenres) { db.TitleGenres.Attach(titleGenre); } } } }
public static void Refresh() { using (var db = new DatabaseContext()) { db.Artists.Load(); db.Characters.Load(); db.Genres.Load(); db.Roles.Load(); db.Titles.Load(); db.TitleArtists.Load(); db.TitleArtistCharacters.Load(); db.TitleGenres.Load(); var entities = new CachedEntities { Artists = db.Artists.Local, Characters = db.Characters.Local, Genres = db.Genres.Local, Roles = db.Roles.Local, Titles = db.Titles.Local, TitleArtists = db.TitleArtists.Local, TitleArtistCharacters = db.TitleArtistCharacters.Local, TitleGenres = db.TitleGenres.Local }; var json = JsonConvert.SerializeObject( entities, Formatting.Indented, settings: new JsonSerializerSettings { ContractResolver = new CachedEntitiesContractResolver() }); MemoryCache.Default[nameof(EntityCache)] = json; } }
public RepositoryExplicitManual( DatabaseContext db) : base(db) { }
protected void Dispose( bool disposing) { if (disposing) { if (_db != null) { #if DEBUG if (_db.Database.Connection is SqlConnection) { var stats = (_db.Database.Connection as SqlConnection).RetrieveStatistics(); foreach (var key in stats.Keys) { System.Diagnostics.Debug.WriteLine($"{key}\t{stats[key]}"); } } #endif _db.Dispose(); _db = null; } } }
public RepositoryStoredProcedures( DatabaseContext db) : base(db) { }
private IRepository GetRepo() { if (_repo == null && Request != null) { var db = new DatabaseContext(); switch (Request["mode"]) { case MODE_INCLUDE: _repo = new RepositoryExplicitInclude(db); break; case MODE_LAZY: _repo = new RepositoryLazy(db); break; case MODE_SPROC: _repo = new RepositoryStoredProcedures(db); break; case MODE_CACHE: _repo = new RepositoryEntityCache(db); break; case MODE_MANUAL: default: _repo = new RepositoryExplicitManual(db); break; } // // NOTE: We're adding the repo to the HTTP context so we can dispose of it from Application_EndRequest. // HttpContext.Items["repo"] = _repo; } return _repo; }
public RepositoryExplicitInclude( DatabaseContext db) : base(db) { }