public void LazyFieldHasCheckIfModifiedConstraintTest() { var counter = new QueryCounter(); using (var session = Domain.OpenSession()) { using (counter.Attach(session)) using (var transaction = session.OpenTransaction()) { foreach (var chapter in session.Query.All <Chapter>()) { chapter.Title = chapter.Title + " modified"; } transaction.Complete(); } Assert.That(counter.Count, Is.EqualTo(2)); counter.Reset(); } using (var session = Domain.OpenSession()) { int updatedItems = 0; using (counter.Attach(session)) using (var transaction = session.OpenTransaction()) { foreach (var chapter in session.Query.All <Chapter>()) { chapter.Description = chapter.Description + " modified"; updatedItems++; } transaction.Complete(); } Assert.That(counter.Count, Is.EqualTo(5)); // query + fetches + update counter.Reset(); } }
public void LazyFieldHasCheckAlwaysConstraintTest() { var counter = new QueryCounter(); using (var session = Domain.OpenSession()) { using (counter.Attach(session)) using (var transaction = session.OpenTransaction()) { var goncharov = session.Query.Single <Author>(goncharovKey); goncharov.FirstName = goncharov.FirstName + "modified"; // should prefetch lazy load field transaction.Complete(); } Assert.That(counter.Count, Is.EqualTo(3)); counter.Reset(); } }
public void LazyFieldHasNoConstraintTest() { var counter = new QueryCounter(); using (var session = Domain.OpenSession()) { using (counter.Attach(session)) using (var transaction = session.OpenTransaction()) { var oblomov = session.Query.Single <Book>(oblomovKey); oblomov.Title = "Oblomov by Goncharov"; transaction.Complete(); } Assert.That(counter.Count, Is.EqualTo(2)); counter.Reset(); } }
private static void Load_VERSION_3_3() { BindFragDataLocationIndexed = GetAddress <BindFragDataLocationIndexed>("glBindFragDataLocationIndexed"); GetFragDataIndex = GetAddress <GetFragDataIndex>("glGetFragDataIndex"); _GenSampler = GetAddress <GenSampler>("glGenSamplers"); _GenSamplers = GetAddress <GenSamplers>("glGenSamplers"); DeleteSamplers = GetAddress <DeleteSamplers>("glDeleteSamplers"); IsSampler = GetAddress <IsSampler>("glIsSampler"); BindSampler = GetAddress <BindSampler>("glBindSampler"); _SamplerParameteri = GetAddress <SamplerParameteri>("glSamplerParameteri"); SamplerParameteriv = GetAddress <SamplerParameteriv>("glSamplerParameteriv"); SamplerParameterf = GetAddress <SamplerParameterf>("glSamplerParameterf"); SamplerParameterfv = GetAddress <SamplerParameterfv>("glSamplerParameterfv"); SamplerParameterIiv = GetAddress <SamplerParameterIiv>("glSamplerParameterIiv"); SamplerParameterIuiv = GetAddress <SamplerParameterIuiv>("glSamplerParameterIuiv"); _GetSamplerParameteri = GetAddress <GetSamplerParameteri>("glGetSamplerParameteriv"); GetSamplerParameteriv = GetAddress <GetSamplerParameteriv>("glGetSamplerParameteriv"); GetSamplerParameterIi = GetAddress <GetSamplerParameterIi>("glGetSamplerParameterIiv"); GetSamplerParameterIiv = GetAddress <GetSamplerParameterIiv>("glGetSamplerParameterIiv"); GetSamplerParameterf = GetAddress <GetSamplerParameterf>("glGetSamplerParameterfv"); GetSamplerParameterfv = GetAddress <GetSamplerParameterfv>("glGetSamplerParameterfv"); GetSamplerParameterIui = GetAddress <GetSamplerParameterIui>("glGetSamplerParameterIuiv"); GetSamplerParameterIuiv = GetAddress <GetSamplerParameterIuiv>("glGetSamplerParameterIuiv"); QueryCounter = GetAddress <QueryCounter>("glQueryCounter"); GetQueryObjecti64 = GetAddress <GetQueryObjecti64>("glGetQueryObjecti64v"); GetQueryObjecti64v = GetAddress <GetQueryObjecti64v>("glGetQueryObjecti64v"); GetQueryObjectui64 = GetAddress <GetQueryObjectui64>("glGetQueryObjectui64v"); GetQueryObjectui64v = GetAddress <GetQueryObjectui64v>("glGetQueryObjectui64v"); VertexAttribDivisor = GetAddress <VertexAttribDivisor>("glVertexAttribDivisor"); VertexAttribP1ui = GetAddress <VertexAttribP1ui>("glVertexAttribP1ui"); VertexAttribP1uiv = GetAddress <VertexAttribP1uiv>("glVertexAttribP1uiv"); VertexAttribP2ui = GetAddress <VertexAttribP2ui>("glVertexAttribP2ui"); VertexAttribP2uiv = GetAddress <VertexAttribP2uiv>("glVertexAttribP2uiv"); VertexAttribP3ui = GetAddress <VertexAttribP3ui>("glVertexAttribP3ui"); VertexAttribP3uiv = GetAddress <VertexAttribP3uiv>("glVertexAttribP3uiv"); VertexAttribP4ui = GetAddress <VertexAttribP4ui>("glVertexAttribP4ui"); VertexAttribP4uiv = GetAddress <VertexAttribP4uiv>("glVertexAttribP4uiv"); VERSION_3_3 = VERSION_3_2 && BindFragDataLocationIndexed != null && GetFragDataIndex != null && _GenSamplers != null && DeleteSamplers != null && IsSampler != null && BindSampler != null && _SamplerParameteri != null && SamplerParameteriv != null && SamplerParameterf != null && SamplerParameterfv != null && SamplerParameterIiv != null && SamplerParameterIuiv != null && GetSamplerParameteriv != null && GetSamplerParameterIiv != null && GetSamplerParameterfv != null && GetSamplerParameterIuiv != null && QueryCounter != null && GetQueryObjecti64v != null && GetQueryObjectui64v != null && VertexAttribDivisor != null && VertexAttribP1uiv != null && VertexAttribP2uiv != null && VertexAttribP3uiv != null && VertexAttribP4uiv != null; }
/// <summary> /// Called first to initialize the context /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> private void ForumPage_Init([NotNull] object sender, [NotNull] EventArgs e) { this.Get <IRaiseEvent>().Raise(new ForumPageInitEvent()); if (this._noDataBase) { return; } #if DEBUG QueryCounter.Reset(); #endif // set the current translation page... this.Get <LocalizationProvider>().TranslationPage = this._transPage; // fire preload event... this.Get <IRaiseEvent>().Raise(new ForumPagePreLoadEvent()); }
public void LazyFieldHasCheckIfModifiedConstraintTest() { var counter = new QueryCounter(); using (var session = Domain.OpenSession()) { using (counter.Attach(session)) using (var transaction = session.OpenTransaction()) { foreach (var chapter in session.Query.All <Chapter>()) { chapter.Title = chapter.Title + " modified"; } transaction.Complete(); } Assert.That(counter.OverallCount, Is.EqualTo(4)); Assert.That(counter.SelectCount, Is.EqualTo(1)); // select items only, no fetch Assert.That(counter.UpdateCount, Is.EqualTo(3)); counter.Reset(); } using (var session = Domain.OpenSession()) { var updatedItems = 0; using (counter.Attach(session)) using (var transaction = session.OpenTransaction()) { foreach (var chapter in session.Query.All <Chapter>()) { chapter.Description = chapter.Description + " modified"; updatedItems++; } transaction.Complete(); } Assert.That(counter.OverallCount, Is.EqualTo(7)); Assert.That(counter.SelectCount, Is.EqualTo(4)); // query + fetches Assert.That(counter.UpdateCount, Is.EqualTo(3)); // updates counter.Reset(); } }
/// <summary> /// The execute. /// </summary> /// <param name="execFunc"> /// The exec func. /// </param> /// <param name="cmd"> /// The cmd. /// </param> /// <param name="dbTransaction"> /// The db transaction. /// </param> /// <typeparam name="T"> /// </typeparam> /// <returns> /// The <see cref="T"/>. /// </returns> public virtual T Execute <T>(Func <IDbCommand, T> execFunc, IDbCommand cmd = null, IDbTransaction dbTransaction = null) { var command = cmd ?? this.GetCommand(string.Empty, false); using (var qc = new QueryCounter(command.CommandText)) { T result = default(T); if (dbTransaction == null) { if (command.Connection != null && command.Connection.State == ConnectionState.Open) { result = execFunc(command); } else { using (var connection = this.CreateConnectionOpen()) { // get an open connection command.Connection = connection; result = execFunc(command); connection.Close(); } } } else { command.Populate(dbTransaction); result = execFunc(command); } #if DEBUG qc.CurrentSql = command.CommandText; #endif return(result); } }