private static IEntity findById_Private( long id, ObjectInfo state ) { if (id < 0) return null; IEntity result = null; SqlBuilder sh = new SqlBuilder( state.EntityInfo ); processIncluder( state.Includer ); String sql = sh.GetFindById( id, state.Includer.SelectedProperty ); IDbCommand cmd = DataFactory.GetCommand( sql, DbContext.getConnection( state.EntityInfo ) ); IList list = new ArrayList(); IDataReader rd = null; try { rd = cmd.ExecuteReader(); while (rd.Read()) { list.Add( FillUtil.Populate( rd, state ) ); } } catch (Exception ex) { logger.Error( ex.Message ); logger.Error( ex.StackTrace ); throw new OrmException( ex.Message, ex ); } finally { OrmHelper.CloseDataReader( rd ); } if (list.Count > 0) result = list[0] as IEntity; result = setEntityProperty( result, id, state ); return result; }
private static IEntity findById_Private( int id, ObjectInfo state ) { if (id < 0) return null; IEntity result = null; SqlBuilder sh = new SqlBuilder( state.EntityInfo ); processIncluder( state.Includer ); String sql = sh.GetFindById(id, state.Includer.SelectedProperty); var conn = DbContext.getConnection(state.EntityInfo); if (conn.State == System.Data.ConnectionState.Closed) { conn.Open(); OrmHelper.initCount++; LogManager.GetLogger("Class:System.ORM.Operation.FindByIdOperation Method:findById_Private").Info("数据库连接已开启【" + OrmHelper.initCount + "】"); } IDbCommand cmd = DataFactory.GetCommand(sql, conn); IList list = new ArrayList(); IDataReader rd = null; try { rd = cmd.ExecuteReader(); while (rd.Read()) { list.Add( FillUtil.Populate( rd, state ) ); } } catch (Exception ex) { logger.Error( ex.Message ); logger.Error( ex.StackTrace ); throw ex; } finally { if (!DbContext.shouldTransaction()) { if (conn.State != ConnectionState.Closed) { conn.Close(); conn.Dispose(); OrmHelper.clostCount++; LogManager.GetLogger("Class:System.ORM.Operation.FindByIdOperation Method:findById_Private").Info("数据库连接已关闭【" + OrmHelper.clostCount + "】"); } } OrmHelper.CloseDataReader(rd); } if (list.Count > 0) result = list[0] as IEntity; result = setEntityProperty( result, id, state ); return result; }