static void Expando_Expand() { Beer beer = new Beer() { Name = "Sly Fox IPA" }; Glass glass = new Glass() { Ounces = 32 }; // create an expando and combine the objects FastExpando x = beer.Expand(); x.Expand(glass); // look! a dynamic object dynamic d = x; Console.WriteLine("{0}", d.Name); Console.WriteLine("{0}", d.Ounces); }
static void Expando_TransformList() { Beer ipa = new Beer() { Name = "IPA" }; Database.Connection().ExecuteSql("INSERT INTO Beer (Name) VALUES (@Name)", ipa); var mapping = new Dictionary<string, string>() { { "Name", "TheName" } }; foreach (dynamic beer in Database.Connection().QuerySql("SELECT * FROM Beer WHERE Name = @Name", new { Name = "IPA" }).Transform(mapping)) Console.WriteLine(beer.TheName); Database.Connection().ExecuteSql("DELETE FROM Beer WHERE Name = @Name", ipa); }
static void Async_Execute() { Beer beer = new Beer() { Name = "Sly Fox IPA" }; Task task = Database.Connection().ExecuteAsync("InsertBeer", beer); // do stuff task.Wait(); }
static void ObjectHierarchy() { Beer beer = new Beer() { Name = "Sly Fox IPA", Flavor = "yummy", OriginalGravity = 4.2m }; Glass glass = new Glass() { Name = "Pilsner", Ounces = 16 }; Database.Connection().Insert("InsertBeer", beer); Database.Connection().Insert("InsertGlass", glass); Serving serving = new Serving() { When = DateTime.Parse("1/1/2012") }; serving.Beer = beer; serving.Glass = glass; Database.Connection().Insert("InsertServing", serving); var servings = Database.Connection().QuerySql<Serving, Beer, Glass>("SELECT s.*, b.*, g.* FROM Servings s JOIN Beer b ON (s.BeerID = b.ID) JOIN Glasses g ON (s.GlassesID = g.ID)", Parameters.Empty); foreach (var s in servings) Console.WriteLine("{0} {1} {2}", s.When, s.Beer.Name, s.Glass.Ounces); }
static void Insert_Sql() { Beer beer = new Beer() { Name = "HopDevil", Flavor = "Hoppy", OriginalGravity = 0.62m }; var insertedBeer = Database.Connection().InsertSql("INSERT INTO Beer (Name, Details) VALUES (@Name, @Details) SELECT SCOPE_IDENTITY() AS [Id]", beer); }
static void Dynamic_ForEach() { Beer ipa = new Beer() { Name = "IPA" }; Database.Connection().ExecuteSql("INSERT INTO Beer (Name) VALUES (@Name)", ipa); Database.Connection().ForEachDynamicSql("SELECT * FROM Beer WHERE Name = @Name", new { Name = "IPA" }, beer => { beer.OriginalGravity = 4.2m; // extension methods cannot be dynamically dispatched, so we have to cast it to object // good news: it still works Database.Connection().ExecuteSql("UPDATE Beer Set OriginalGravity = @OriginalGravity WHERE Name = @Name", (object)beer); }); Database.Connection().ExecuteSql("DELETE FROM Beer WHERE Name = @Name", ipa); }
static void ExecuteSql() { Beer beer = new Beer() { Name = "IPA" }; // map a beer the stored procedure parameters Database.Connection().ExecuteSql("INSERT INTO Beer (Name) VALUES (@Name)", beer); // map an anonymous object to the stored procedure parameters Database.Connection().ExecuteSql("DELETE FROM Beer WHERE Name = @Name", new { Name = "IPA" }); }
static void Drink(Beer b) { Console.WriteLine("YUM"); }
/// <summary> /// Asynchronously updates a single Beer in the repository. /// </summary> /// <param name="beer">The Beer to upsert.</param> /// <returns>A task representing the completion of the operation.</returns> public Task UpsertBeerAsync(Beer beer) { return _connectionFactory().InsertAsync("UpsertBeer", beer); }
static void Execute() { Beer beer = new Beer() { Name = "IPA" }; // map a beer the stored procedure parameters Database.Connection().Insert("InsertBeer", beer); // map an anonymous object to the stored procedure parameters Database.Connection().Execute("DeleteBeer", beer); }
/// <summary> /// Asynchronously updates a single Beer in the repository. /// </summary> /// <param name="beer">The Beer to update.</param> /// <returns>A task representing the completion of the operation.</returns> public Task UpdateBeerAsync(Beer beer) { return _connectionFactory().ExecuteAsync("UpdateBeer", beer); }
/// <summary> /// Upserts a single Beer in the repository. /// </summary> /// <param name="beer">The Beer to update.</param> public void UpsertBeer(Beer beer) { _connectionFactory().Insert("UpsertBeer", beer); }
/// <summary> /// Updates a single Beer in the repository. /// </summary> /// <param name="beer">The Beer to update.</param> public void UpdateBeer(Beer beer) { _connectionFactory().Execute("UpdateBeer", beer); }
static void Drink (Beer b) { Console.WriteLine("YUM"); }
static void CommonParameter_Transaction() { using (var connection = Database.Connection().OpenWithTransaction()) { Beer beer = new Beer("Sly Fox IPA"); connection.Execute("InsertBeer", beer); // without a commit this rolls back } }
private static void Repository() { IBeerRepository repo = Database.As<IBeerRepository>(); // single object operations Beer b = new Beer() { Name = "Double IPA", Flavor = "IPA" }; repo.InsertBeer(b); b.Name = "Tripel IPA"; repo.UpdateBeer(b); repo.UpsertBeer(b); int totalRows; var results = repo.FindBeersByFlavor("IPA", out totalRows); repo.DeleteBeer(b.Id); // multiple object operations Beer b2 = new Beer() { Name = "Tripel IPA" }; Beer b3 = new Beer() { Name = "Quad IPA (eek!)" }; List<Beer> beers = new List<Beer>() { b, b2 }; repo.InsertBeers(beers); beers.Add(b3); repo.UpsertBeers(beers); // wildcard find IList<Beer> ipas = repo.FindBeers(new { Name = "%IPA%", NameOperator = "LIKE" }); Console.WriteLine("There are {0} IPAs in the database", ipas.Count); // clean up repo.DeleteBeers(beers.Select(beer => beer.Id)); // create a receipt Receipt r = new Receipt() { Id = 1, Name = "John Smith" }; repo.UpsertReceipt(r); repo.DeleteReceipt(r.Id); }
static void CommonParameter_Transaction() { using (SqlConnection connection = Database.Open()) using (SqlTransaction t = connection.BeginTransaction()) { Beer beer = new Beer("Sly Fox IPA"); connection.Execute("InsertBeer", beer, transaction: t); // without a commit this rolls back } }