mirror of
https://github.com/DapperLib/Dapper.git
synced 2026-10-29 05:10:10 +08:00
Added example/test for http://stackoverflow.com/q/16796519/23354
This commit is contained in:
@@ -12,6 +12,7 @@ using System.Reflection;
|
||||
using System.Dynamic;
|
||||
using System.ComponentModel;
|
||||
using Microsoft.CSharp.RuntimeBinder;
|
||||
using System.Data.Common;
|
||||
#if POSTGRESQL
|
||||
using Npgsql;
|
||||
#endif
|
||||
@@ -1613,6 +1614,36 @@ Order by p.Id";
|
||||
connection.Execute("drop table #Users drop table #Posts drop table #Comments");
|
||||
}
|
||||
|
||||
public class DbParams : Dapper.SqlMapper.IDynamicParameters, IEnumerable<IDbDataParameter>
|
||||
{
|
||||
private readonly List<IDbDataParameter> parameters = new List<IDbDataParameter>();
|
||||
public IEnumerator<IDbDataParameter> GetEnumerator() { return parameters.GetEnumerator(); }
|
||||
IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); }
|
||||
public void Add(IDbDataParameter value)
|
||||
{
|
||||
parameters.Add(value);
|
||||
}
|
||||
void Dapper.SqlMapper.IDynamicParameters.AddParameters(IDbCommand command,
|
||||
Dapper.SqlMapper.Identity identity)
|
||||
{
|
||||
foreach (IDbDataParameter parameter in parameters)
|
||||
command.Parameters.Add(parameter);
|
||||
}
|
||||
}
|
||||
public void TestCustomParameters()
|
||||
{
|
||||
var args = new DbParams {
|
||||
new SqlParameter("foo", 123),
|
||||
new SqlParameter("bar", "abc")
|
||||
};
|
||||
var result = connection.Query("select Foo=@foo, Bar=@bar", args).Single();
|
||||
int foo = result.Foo;
|
||||
string bar = result.Bar;
|
||||
foo.IsEqualTo(123);
|
||||
bar.IsEqualTo("abc");
|
||||
}
|
||||
|
||||
|
||||
public void TestReadDynamicWithGridReader()
|
||||
{
|
||||
var createSql = @"
|
||||
|
||||
Reference in New Issue
Block a user