コード例 #1
0
        /// <summary>
        /// Invoke on Scope with Transaction.
        /// </summary>
        protected void InvokeWithTransactionOnScope(string transactionName, Action <DataScope <TSession, TMetaData> > toPerform)
        {
            using (IDataAccessAdapter adapter = _AdapterService.CreateAdapter())
            {
                try
                {
                    _AdapterService.StartTransaction(adapter, transactionName);

                    var scope = BuildDataScope(adapter);

                    PerformActionsOnScope(_AdapterService, toPerform, scope);

                    _AdapterService.FinishTransaction(adapter);
                }
                catch (Exception ex)
                {
                    adapter.Rollback();
                    if (!HandleException(transactionName, ex))
                    {
                        throw ex;
                    }
                }
                finally
                {
                    adapter.Dispose();
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// Tears down the context.
        /// </summary>
        /// <param name="cxInfo">The cx info.</param>
        /// <param name="context">The context.</param>
        /// <param name="executionManager">The execution manager.</param>
        /// <param name="constructorArguments">The constructor arguments.</param>
        public override void TearDownContext(IConnectionInfo cxInfo, object context, QueryExecutionManager executionManager, object[] constructorArguments)
        {
            base.TearDownContext(cxInfo, context, executionManager, constructorArguments);
            ILinqMetaData contextAsLinqMetaData = context as ILinqMetaData;

            if (context != null)
            {
                var adapterToUseProperty = contextAsLinqMetaData.GetType().GetProperty("AdapterToUse");
                if (adapterToUseProperty != null)
                {
                    IDataAccessAdapter adapterUsed = adapterToUseProperty.GetValue(contextAsLinqMetaData, null) as IDataAccessAdapter;
                    if (adapterUsed != null)
                    {
                        adapterUsed.Dispose();
                    }
                }
            }
        }
コード例 #3
0
        private void InvokeOnScopeWithoutTransaction(string message, Action <DataScope <TSession, TMetaData> > toPerform)
        {
            using (IDataAccessAdapter adapter = _AdapterService.CreateAdapter())
            {
                try
                {
                    var scope = BuildDataScope(adapter);

                    PerformActionsOnScope(_AdapterService, toPerform, scope);
                }
                catch (Exception ex)
                {
                    if (!HandleException(message, ex))
                    {
                        throw ex;
                    }
                }
                finally
                {
                    adapter.Dispose();
                }
            }
        }
コード例 #4
0
ファイル: RepositoryBase.cs プロジェクト: aaeberli/NewsSite
 public void Dispose()
 {
     _dataAccessAdapter.Dispose();
 }