효율적인 데이터 처리: DataReader를 List로 변환
.NET 환경에서 데이터를 처리할 때 DataReader(앞으로 읽기만 하는 데이터 스트림)를 List
해결책: 확장 방법
변환하는 한 가지 방법은 확장 방법을 사용하는 것입니다. 예시는 다음과 같습니다.
<code class="language-csharp">public static IEnumerable<T> Select<T>(this IDataReader reader, Func<IDataReader, T> projection) { while (reader.Read()) { yield return projection(reader); } }</code>
이 확장 방법을 사용하면 프로젝션 함수를 사용하여 DataReader에서 데이터를 선택하고 이를 IEnumerable로 변환할 수 있습니다
사용예
데이터를 목록으로 변환하려면
<code class="language-csharp">using (IDataReader reader = ...) { List<Customer> customers = reader.Select(r => new Customer { CustomerId = r["id"] is DBNull ? null : r["id"].ToString(), CustomerName = r["name"] is DBNull ? null : r["name"].ToString() }).ToList(); }</code>
이 예에서는 DataReader의 행을 Customer 개체 목록으로 변환합니다.
대안: 엔터티 유형에 대한 특수 방법
또는 Customer 엔터티에서 전용 정적 메서드를 만들 수도 있습니다.
<code class="language-csharp">public static Customer FromDataReader(IDataReader reader) { ... }</code>
이 메소드는 DataReader의 데이터를 기반으로 Customer 개체를 생성하는 역할을 합니다.
이 방법을 사용하면 변환 프로세스를 단순화할 수 있습니다.
<code class="language-csharp">using (IDataReader reader = ...) { List<Customer> customers = reader.Select<Customer>(Customer.FromDataReader) .ToList(); }</code>
이러한 기술을 통해 DataReader의 데이터를 List로 효율적으로 변환할 수 있습니다
위 내용은 DataReader를 .NET의 목록으로 효율적으로 변환하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!