Beispiel #1
0
        void WithModel(Action <IModel> handleModel)
        {
            if (Transaction.Current != null)
            {
                if (transactionManager == null)
                {
                    var model = connection.CreateModel();
                    model.TxSelect();
                    transactionManager = new AmbientTxHack(
                        () =>
                    {
                        model.TxCommit();
                        transactionManager = null;
                        ambientModel       = null;
                    },
                        () =>
                    {
                        model.TxRollback();
                        transactionManager = null;
                        ambientModel       = null;
                    },
                        model);

                    handleModel(model);
                    ambientModel = model;
                }
                else
                {
                    handleModel(ambientModel);
                }
            }
            else
            {
                using (var model = connection.CreateModel())
                {
                    handleModel(model);
                }
            }
        }
Beispiel #2
0
        void WithModel(Action<IModel> handleModel)
        {
            if (Transaction.Current != null)
            {
                if (transactionManager == null)
                {
                    var model = connection.CreateModel();
                    model.TxSelect();
                    transactionManager = new AmbientTxHack(
                        () =>
                        {
                            model.TxCommit();
                            transactionManager = null;
                            ambientModel = null;
                        },
                        () =>
                        {
                            model.TxRollback();
                            transactionManager = null;
                            ambientModel = null;
                        },
                        model);

                    handleModel(model);
                    ambientModel = model;
                }
                else
                {
                    handleModel(ambientModel);
                }
            }
            else
            {
                using (var model = connection.CreateModel())
                {
                    handleModel(model);
                }
            }
        }