Commit f8a189a9 authored by Marc Gravell's avatar Marc Gravell

Merge pull request #169 from StackExchange/fix_detached_head

Investigate issue 157 (unable to reproduce) - but also found and fixed i...
parents 42e8f946 b15d24b3
......@@ -461,6 +461,8 @@ private static async Task<int> ExecuteImplAsync(IDbConnection cnn, CommandDefini
}
private static IEnumerable<T> ExecuteReaderSync<T>(IDataReader reader, Func<IDataReader,object> func, object parameters)
{
using (reader)
{
while (reader.Read())
{
......@@ -470,6 +472,7 @@ private static IEnumerable<T> ExecuteReaderSync<T>(IDataReader reader, Func<IDat
if (parameters is DynamicParameters)
((DynamicParameters)parameters).FireOutputCallbacks();
}
}
/// <summary>
/// Execute a command that returns multiple result sets, and access each in turn
......
......@@ -535,6 +535,34 @@ select 17
y.IsEqualTo(17);
}
}
public void TestSubsequentQueriesSuccess()
{
using (var connection = Program.GetOpenConnection())
{
var data0 = connection.QueryAsync<Foo0>("select 1 as [Id] where 1 = 0").Result.ToList();
data0.Count().IsEqualTo(0);
var data1 = connection.QueryAsync<Foo1>(new CommandDefinition("select 1 as [Id] where 1 = 0", flags:CommandFlags.Buffered)).Result.ToList();
data1.Count().IsEqualTo(0);
var data2 = connection.QueryAsync<Foo2>(new CommandDefinition("select 1 as [Id] where 1 = 0", flags: CommandFlags.None)).Result.ToList();
data2.Count().IsEqualTo(0);
data0 = connection.QueryAsync<Foo0>("select 1 as [Id] where 1 = 0").Result.ToList();
data0.Count().IsEqualTo(0);
data1 = connection.QueryAsync<Foo1>(new CommandDefinition("select 1 as [Id] where 1 = 0", flags: CommandFlags.Buffered)).Result.ToList();
data1.Count().IsEqualTo(0);
data2 = connection.QueryAsync<Foo2>(new CommandDefinition("select 1 as [Id] where 1 = 0", flags: CommandFlags.None)).Result.ToList();
data2.Count().IsEqualTo(0);
}
}
class Foo0 { public int Id { get;set; } }
class Foo1 { public int Id { get; set; } }
class Foo2 { public int Id { get; set; } }
class Person
{
public int PersonId { get; set; }
......
......@@ -3661,6 +3661,29 @@ private void TestBigIntForEverythingWorks<T>(T expected, string dbType)
scalar.IsEqualTo(expected);
}
public void TestSubsequentQueriesSuccess()
{
var data0 = connection.Query<Fooz0>("select 1 as [Id] where 1 = 0").ToList();
data0.Count().IsEqualTo(0);
var data1 = connection.Query<Fooz1>(new CommandDefinition("select 1 as [Id] where 1 = 0", flags: CommandFlags.Buffered)).ToList();
data1.Count().IsEqualTo(0);
var data2 = connection.Query<Fooz2>(new CommandDefinition("select 1 as [Id] where 1 = 0", flags: CommandFlags.None)).ToList();
data2.Count().IsEqualTo(0);
data0 = connection.Query<Fooz0>("select 1 as [Id] where 1 = 0").ToList();
data0.Count().IsEqualTo(0);
data1 = connection.Query<Fooz1>(new CommandDefinition("select 1 as [Id] where 1 = 0", flags: CommandFlags.Buffered)).ToList();
data1.Count().IsEqualTo(0);
data2 = connection.Query<Fooz2>(new CommandDefinition("select 1 as [Id] where 1 = 0", flags: CommandFlags.None)).ToList();
data2.Count().IsEqualTo(0);
}
class Fooz0 { public int Id { get; set; } }
class Fooz1 { public int Id { get; set; } }
class Fooz2 { public int Id { get; set; } }
public void SO25069578_DynamicParams_Procs()
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment