public void Example1_Chain()
{
var guid = Guid.NewGuid();
var dog = s_DataSource.Sql("select Age = @Age, Id = @Id", new { Age = (int?)null, Id = guid }).ToCollection<Dog>().Execute(); ;
Assert.AreEqual(1, dog.Count());
Assert.IsNull(dog.First().Age);
Assert.AreEqual(guid, dog.First().Id);
//Or if you just want one:
var aDog = s_DataSource.Sql("select Age = @Age, Id = @Id", new { Age = (int?)null, Id = guid }).ToObject<Dog>().Execute(); ;
Assert.IsNull(aDog.Age);
Assert.AreEqual(guid, aDog.Id);
//Make it more realistic by actually inserting a record
var originalDog = new Dog() { Age = 2, Name = "Fido", Weight = 2.5f };
var key = s_DataSource.Insert("Dog", originalDog).ToGuid().Execute();
//And then re-read it back
var fetchedDog = s_DataSource.GetByKey("Dog", key).ToObject<Dog>().Execute();
Assert.AreEqual(originalDog.Age, fetchedDog.Age);
Assert.AreEqual(originalDog.Name, fetchedDog.Name);
Assert.AreEqual(originalDog.Weight, fetchedDog.Weight);
}