public ExecutorResult Execute() { return(RunDiagnosis.Watch(() => { Check.IfNullOrZero(_model); var instance = _model; instance.SetAddTime(); instance.OnChanged(); if (_options.ModelValidate) { instance.CheckPropertyValue(); } var(tableName, aliasName) = instance.GetEntityBaseAliasName(); var sqlElements = instance.GetChangedProperties().GetSqlElements(); var insert = _templateBase.CreateInsert(tableName, sqlElements.Fields, sqlElements.InsertPlaceHolders); var statementResultBuilder = new StatementResultBuilder(); statementResultBuilder.AddStatementTemplate(insert); foreach (var item in sqlElements.Parameters) { statementResultBuilder.AddParameter(item); } return _resultExecutor.Execute(statementResultBuilder); })); }
public ExecutorResult Execute() { return(RunDiagnosis.Watch(() => { if (!FromComponent.AliasNameMappers.Any()) { throw new ArgumentException("From"); } var mainTable = FromComponent.AliasNameMappers[0]; var selectStatement = _options.TemplateBase.CreateSelect(ExtractSelectFields(), mainTable.Key, mainTable.Value); var statementResultBuilder = Translate(selectStatement, WhereComponent, FromComponent, JoinComponents); JoinComponents.Clear(); if (PaginationComponent != null) { if (OrderComponent == null) { throw new Exception("Order"); } var(fields, tableName) = ExtractOrderFields(); var orderTemplate = _options.TemplateBase.CreateOrderBy(OrderComponent.OrderBy, $@"{tableName}.{fields}"); _options.TemplateBase.CreatePagination(PaginationComponent, orderTemplate, statementResultBuilder.StatmentTemplate); } else if (OrderComponent != null) { var(fields, tableName) = ExtractOrderFields(); var orderTemplate = _options.TemplateBase.CreateOrderBy(OrderComponent.OrderBy, $@"{tableName}.{fields}"); selectStatement.Append(orderTemplate); } return _resultExecutor.Execute(statementResultBuilder); })); }
protected internal override void Rollback() { if (_dataTransaction != null) { _dataTransaction.Rollback(); RunDiagnosis.Info("事务回滚"); } }
protected internal override void Commit() { if (_dataTransaction != null) { _dataTransaction.Commit(); RunDiagnosis.Info("提交事务"); } }
protected internal override DbTransaction OpenTransaction() { if (_dataTransaction == null) { _dataTransaction = _connection.BeginTransaction(_options.TransactionControl.Level); RunDiagnosis.Info("开启事务"); } return(_dataTransaction); }
protected internal override void OpenConnection() { if (_connection == null) { _connection = _options.TemplateBase.CreateDbConnection(ConfigReader.GetHostVar(_options.ConnectionStringName)); } if (_connection.State == ConnectionState.Closed) { RunDiagnosis.Info("开启连接"); _connection.Open(); } }
public ExecutorResult Execute() { return(RunDiagnosis.Watch(() => { var instance = Model; instance.SetUpdateTime(); if (_options.ModelValidate) { instance.CheckPropertyValue(); } var(tableName, aliasName) = instance.GetEntityBaseAliasName(); var sqlElements = instance.GetChangedProperties().GetSqlElements(); var update = _options.TemplateBase.CreateUpdate(tableName, aliasName, sqlElements.UpdatePlaceHolders); var statementResultBuilder = Translate(update, WhereComponent); instance.Reset(); return _resultExecutor.Execute(statementResultBuilder); })); }
protected internal override void Dispose(Boolean disposing) { RunDiagnosis.Info($@"释放资源{Environment.NewLine}"); if (!_disposed) { if (!disposing) { return; } if (_connection != null) { if (_connection.State != ConnectionState.Closed) { _connection.Close(); } _connection.Dispose(); _connection = null; _dataTransaction = null; } _disposed = true; } }
/// <summary> /// 设置自定义日志记录组件 /// </summary> /// <param name="logger"></param> public void SetLogger(ILogger logger = null) { RunDiagnosis.SetLoggerInstance(logger ?? new DefaultLogger()); }