public void Issue461_TypeHandlerWorksInConstructor() { SqlMapper.AddTypeHandler(new Issue461_BlargHandler()); connection.Execute(@"CREATE TABLE #Issue461 ( Id int not null IDENTITY(1,1), SomeValue nvarchar(50), SomeBlargValue nvarchar(200), )"); const string Expected = "abc123def"; var blarg = new Blarg(Expected); connection.Execute( "INSERT INTO #Issue461 (SomeValue, SomeBlargValue) VALUES (@value, @blarg)", new { value = "what up?", blarg }); // test: without constructor var parameterlessWorks = connection.QuerySingle <Issue461_ParameterlessTypeConstructor>("SELECT * FROM #Issue461"); parameterlessWorks.Id.IsEqualTo(1); parameterlessWorks.SomeValue.IsEqualTo("what up?"); parameterlessWorks.SomeBlargValue.Value.IsEqualTo(Expected); // test: via constructor var parameterDoesNot = connection.QuerySingle <Issue461_ParameterisedTypeConstructor>("SELECT * FROM #Issue461"); parameterDoesNot.Id.IsEqualTo(1); parameterDoesNot.SomeValue.IsEqualTo("what up?"); parameterDoesNot.SomeBlargValue.Value.IsEqualTo(Expected); }
static void Main(string[] args) { // set up some example data var bars = new List <Blarg <SomeStatus> .Bar>(); bars.Add(new Blarg <SomeStatus> .Bar { Code = "123", Status = SomeStatus.Open }); bars.Add(new Blarg <SomeStatus> .Bar { Code = "234", Status = SomeStatus.Closed }); bars.Add(new Blarg <SomeStatus> .Bar { Code = "345", Status = SomeStatus.Funky }); bars.Add(new Blarg <SomeStatus> .Bar { Code = "456", Status = SomeStatus.Open }); bars.Add(new Blarg <SomeStatus> .Bar { Code = "567", Status = SomeStatus.Funky }); // create a Foo object Blarg <SomeStatus> .Foo foo = new Blarg <SomeStatus> .Foo { Bar = bars, Status = SomeStatus.Open, }; // now iterate over the Foo.BarsFilteredByStatus property // This will iterate over all Bar objects contained within Foo.Bar where Bar.Status equals Foo.Status foreach (var bar in foo.BarsFilteredByStatus) { Console.WriteLine(bar.Code); } }
public Issue461_ParameterisedTypeConstructor(int id, string someValue, Blarg someBlargValue) { Id = id; SomeValue = someValue; SomeBlargValue = someBlargValue; }