Dapper Query (..) : 스트림 또는 모두로드?

c# dapper orm

문제

이 코드의 모든 레코드를로드하거나 SqlDataReader와 같은 것을 사용합니까?

using (var c = new SqlConnection(_options.TargetConnectionString))
{
    c.Open();
    foreach(var record in c.Query("select * from Users")) // suppose N+1 records
    {
        // all records loaded or read one by one here? 
        // some work here...
    }
}

전문가 답변

두 가지 옵션이 모두 지원됩니다. 기본적으로 데이터는 대부분의 쿼리가 매우 작고 "다중 레코드 세트"제한을 피하기 위해 List<T> 에 버퍼링됩니다. 추가 할당없이 기본 목록을 얻으려면 제공된 .AsList() 확장 메서드를 사용하십시오. 그러나 버퍼링되지 않은 데이터를 원할 경우 : buffered: false 전달하십시오. 이렇게하면 거대한 쿼리에 적합한 원시 IDataReader 를 래핑하는 열거자를 얻을 수 있습니다.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow