public T FetchOneEntity <T>(EntityFetcher <T> fetcher) where T : EntityBase, new() { T[] entities = FetchEntities <T>(fetcher); if (entities.Length > 0) { return(entities[0]); } else { return(new T()); } }
public T[] FetchEntities <T>(EntityFetcher <T> fetcher) where T : EntityBase, new() { List <T> entities = new List <T>(); using (SqlCommand cmd = fetcher.GetSelectCommand()) { cmd.Connection = m_Connection; if (m_Connection.State == ConnectionState.Closed) { m_Connection.Open(); } using (SqlDataReader reader = cmd.ExecuteReader(m_OwnsConnection ? CommandBehavior.CloseConnection : CommandBehavior.Default)) { fetcher.ReadEntities(reader, entities); reader.Close(); } } return(entities.ToArray()); }