Commit d1e6d6f5 authored by Marc Gravell's avatar Marc Gravell

Merge pull request #165 from tuespetre/master

Added support for expression-based output parameter setting
parents 5472d2ab f52d67f1
This diff is collapsed.
...@@ -1175,6 +1175,33 @@ public void TestSupportForDynamicParameters() ...@@ -1175,6 +1175,33 @@ public void TestSupportForDynamicParameters()
p.Get<int>("age").IsEqualTo(11); p.Get<int>("age").IsEqualTo(11);
} }
[ActiveTest]
public void TestSupportForDynamicParametersOutputExpressions()
{
var bob = new Person { Name = "bob", PersonId = 1, Address = new Address { PersonId = 2 } };
var p = new DynamicParameters(bob);
p.Output(bob, b => b.PersonId);
p.Output(bob, b => b.Occupation);
p.Output(bob, b => b.NumberOfLegs);
p.Output(bob, b => b.Address.Name);
p.Output(bob, b => b.Address.PersonId);
connection.Execute(@"
SET @Occupation = 'grillmaster'
SET @PersonId = @PersonId + 1
SET @NumberOfLegs = @NumberOfLegs - 1
SET @AddressName = 'bobs burgers'
SET @AddressPersonId = @PersonId", p);
bob.Occupation.IsEqualTo("grillmaster");
bob.PersonId.IsEqualTo(2);
bob.NumberOfLegs.IsEqualTo(1);
bob.Address.Name.IsEqualTo("bobs burgers");
bob.Address.PersonId.IsEqualTo(2);
}
public void TestSupportForExpandoObjectParameters() public void TestSupportForExpandoObjectParameters()
{ {
dynamic p = new ExpandoObject(); dynamic p = new ExpandoObject();
...@@ -1231,6 +1258,9 @@ class Person ...@@ -1231,6 +1258,9 @@ class Person
{ {
public int PersonId { get; set; } public int PersonId { get; set; }
public string Name { get; set; } public string Name { get; set; }
public string Occupation { get; private set; }
public int NumberOfLegs = 2;
public Address Address { get; set; }
} }
class Address class Address
......
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