public void Example1_DapperMigrated()
{
IEnumerable<Dog> dog;
var guid = Guid.NewGuid();
using (var connection = new SqlConnection(s_ConnectionString))
{
dog = connection.Query<Dog>("select Age = @Age, Id = @Id", new { Age = (int?)null, Id = guid });
}
Assert.AreEqual(1, dog.Count());
Assert.IsNull(dog.First().Age);
Assert.AreEqual(guid, dog.First().Id);
//Make it more realistic by actually inserting a record
var originalDog = new Dog() { Age = 2, Name = "Fido", Weight = 2.5f };
Guid key;
using (var connection = new SqlConnection(s_ConnectionString))
{
//const string insertSql = "INSERT INTO Dog (Age, Name, Weight) OUTPUT Inserted.Id VALUES (@Age, @Name, @Weight);";
//key = connection.ExecuteScalar<Guid>(insertSql, originalDog);
key = connection.AsDataSource().Insert("Dog", originalDog).ToGuid().Execute();
}
//And then re-read it back
Dog fetchedDog;
using (var connection = new SqlConnection(s_ConnectionString))
{
//const string selectSql = "SELECT Age, Name, Weight FROM Dog WHERE Id = @Id;";
//fetchedDog = connection.Query<Dog>(selectSql, new { Id = key }).Single();
fetchedDog = connection.AsDataSource().GetByKey("Dog", key).ToObject<Dog>().Execute();
}
Assert.AreEqual(originalDog.Age, fetchedDog.Age);
Assert.AreEqual(originalDog.Name, fetchedDog.Name);
Assert.AreEqual(originalDog.Weight, fetchedDog.Weight);
}