2016-10-04 2 views
0

SQLinq Nuget package과 함께 Dapper를 사용하고 있습니다.Dapper 및 SQLinq 패키지 지연/버퍼

다음은 일부 샘플 코드입니다.

SQLinq가있는 Dapper는 .ToList() (예 :)를 실행하기 전에 쿼리를 실행합니다.

Dapper를 사용하면 "버퍼"를 지정하여 지연 실행하도록 지정할 수 있지만 Dapper 용 SQLinq NuGet 패키지를 적용하는 방법을 알지 못합니다.

using (var sqlCnn = base.GetConnection()) 
    { 
    var viewData = sqlCnn.Query(from s in new SQLinq<Week_Returns_stats_V>(). . . 

public SqlConnection GetConnection(bool mars = false) 
{ 
    if (_sqlCnn != null) 
    { 
     if (_sqlCnn.State != ConnectionState.Open) CloseConnection(); 
    } 

    if (mars) 
    { 
     var scsb = new SqlConnectionStringBuilder(_cnnString) 
    { 
     MultipleActiveResultSets = true 
    };    
    } 

    _sqlCnn = new SqlConnection(_cnnString); 
    return _sqlCnn; 
} 

답변

0

쿼리 후 버퍼링을 포함하는 방법을 찾았습니다.

public static IEnumerable<T> Query<T> 
(this IDbConnection dbconnection, 
SQLinq<T> query, 
IDbTransaction transaction = null, 
bool buffered = true, 
int? commandTimeout = default(int?), 
CommandType? commandType = 
default(CommandType?)) where T : new(); 

var viewData = sqlCnn.Query(from s in new SQLinq<Returns_stats() 
       select new 
       { 
       AVGPercentReturnX100 = s.AVGPercentReturnX100, 
       PercentProfitableX100 = s.PercentProfitableX100 
       }, buffered:true).AsEnumerable()