#dapper
#dapper
Вопрос:
Я использую Dapper с пакетом Nuget SQLinq.
Вот несколько примеров кода, которые я использую.
Dapper с SQLinq выполняет запрос до того, как я запускаю .ToList() (например).
Я знаю, что с помощью Dapper вы можете указать «буфер», чтобы он выполнялся отложенно, но я не вижу, как применить это к пакету SQLinq NuGet для Dapper.
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;
}
Ответ №1:
Я нашел, как включить буферизацию после запроса.
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()