}//method public DbCommandInfo BuildCommand(DbSqlBuilder dbSqlBuilder, EntityCommand entityCommand) { switch (entityCommand.Kind) { case EntityCommandKind.SelectAll: return(dbSqlBuilder.BuildSelectAllCommand(entityCommand)); case EntityCommandKind.SelectAllPaged: return(dbSqlBuilder.BuildSelectAllPagedCommand(entityCommand)); case EntityCommandKind.SelectByKey: return(dbSqlBuilder.BuildSelectByKeyCommand(entityCommand)); case EntityCommandKind.SelectByKeyArray: return(dbSqlBuilder.BuildSelectByKeyArrayCommand(entityCommand)); case EntityCommandKind.SelectByKeyManyToMany: return(dbSqlBuilder.BuildSelectManyToManyCommand(entityCommand)); case EntityCommandKind.Insert: return(dbSqlBuilder.BuildSqlInsertCommand(entityCommand)); case EntityCommandKind.Update: case EntityCommandKind.PartialUpdate: return(dbSqlBuilder.BuildSqlUpdateCommand(entityCommand)); case EntityCommandKind.Delete: return(dbSqlBuilder.BuildSqlDeleteCommand(entityCommand)); default: // it is custom command - should be compiled on the fly return(null); } }
public DbModel Build() { // create model _dbModel = new DbModel(_entityModel.App, _config); _dbSqlBuilder = _driver.CreateDbSqlBuilder(_dbModel); _driver.OnDbModelConstructing(_dbModel); BuildTables(); CreateTableKeys(); SetupOrderBy(); //ref constraints are created in a separate loop, after creating PKs BuildRefConstraints(); CheckObjectNames(); CompileViews(); BuildCrudCommands(); BuildSequences(); _driver.OnDbModelConstructed(_dbModel); CheckErrors(); return(_dbModel); }//method
public List <T> Select <T>(string where, string orderby, int top, string[] fieldNames) where T : class, new() { if (!IsMappingToDbKey <T>()) { throw new Exception("类型" + typeof(T).FullName + "没有映射到" + DbConfigDatabaseInfo.dbKey + "上"); } var cmd = GetDbCommand(); try { var sql = DbSqlBuilder.Select <T>(where, orderby, top, fieldNames); cmd.CommandText = sql; List <T> reval = cmd.ExecuteReader <T>(); cmd.Dispose(); return(reval); } catch (Exception ex) { cmd.Dispose(); throw ex; } }
public T Get <T>(object key) where T : class, new() { if (!IsMappingToDbKey <T>()) { throw new Exception("类型" + typeof(T).FullName + "没有映射到" + DbConfigDatabaseInfo.dbKey + "上"); } var cmd = GetDbCommand(); try { var sql = DbSqlBuilder.SelectByKey <T>(key); cmd.CommandText = sql; List <T> reval = cmd.ExecuteReader <T>(); cmd.Dispose(); return(reval != null && reval.Count > 0 ? reval[0] : null); } catch (Exception ex) { cmd.Dispose(); throw ex; } }