# SqlRepoEx2.0StartGuid **Repository Path**: azthinker/SqlRepoEx2.0StartGuid ## Basic Information - **Project Name**: SqlRepoEx2.0StartGuid - **Description**: Getting Start SqlRepoEx2.2.1 - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2018-10-21 - **Last Updated**: 2022-01-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SqlRepoEx2.0StartGuid Getting Start SqlRepoEx2.2.1 ``` C# public static void QueryOnly(bool go = false) { // [Column("ProductName")] // public string ProductName2 { get; set; } // Shoud Show [dbo].[Products].[ProductName] as [ProductName2] var repository = MsSqlRepoFactory.Create(); var result = repository.Query(); Console.WriteLine(result.Sql()); Console.WriteLine(); if (go) { var resultgo = result.Go(); foreach (var item in resultgo) { Console.WriteLine($"{item.ProductID}\t{item.Supplier}"); } } // SELECT [dbo].[Products].[ProductID] // , [dbo].[Products].[ProductName] as [ProductName2] // , [dbo].[Products].[SupplierID] // , [dbo].[Products].[CategoryID] // , [dbo].[Products].[QuantityPerUnit] // , [dbo].[Products].[UnitPrice] // , [dbo].[Products].[UnitsInStock] // , [dbo].[Products].[UnitsOnOrder] // , [dbo].[Products].[ReorderLevel] // , [dbo].[Products].[Discontinued] // FROM [dbo].[Products]; } public static void DoInnerJoin() { var repository = MsSqlRepoFactory.Create(); var result = repository.Query() .InnerJoin() .On((l, r) => l.SupplierID == r.SupplierID, r => r.CompanyName); Console.WriteLine(result.Sql()); Console.WriteLine(); // SELECT [dbo].[Products].[ProductID] // , [dbo].[Products].[ProductName] as [ProductName2] // , [dbo].[Products].[SupplierID] // , [dbo].[Products].[CategoryID] // , [dbo].[Products].[QuantityPerUnit] // , [dbo].[Products].[UnitPrice] // , [dbo].[Products].[UnitsInStock] // , [dbo].[Products].[UnitsOnOrder] // , [dbo].[Products].[ReorderLevel] // , [dbo].[Products].[Discontinued] // , [dbo].[Suppliers].[CompanyName] as [Supplier] // FROM [dbo].[Products] // INNER JOIN [dbo].[Suppliers] // ON [dbo].[Products].[SupplierID] = [dbo].[Suppliers].[SupplierID]; } public static void LeftOuterJoin() { var repository = MsSqlRepoFactory.Create(); var result = repository.Query() .LeftOuterJoin() .On((l, r) => l.SupplierID == r.SupplierID, r => r.CompanyName); Console.WriteLine(result.Sql()); Console.WriteLine(); // SELECT [dbo].[Products].[ProductID] // , [dbo].[Products].[ProductName] as [ProductName2] // , [dbo].[Products].[SupplierID] // , [dbo].[Products].[CategoryID] // , [dbo].[Products].[QuantityPerUnit] // , [dbo].[Products].[UnitPrice] // , [dbo].[Products].[UnitsInStock] // , [dbo].[Products].[UnitsOnOrder] // , [dbo].[Products].[ReorderLevel] // , [dbo].[Products].[Discontinued] // , [dbo].[Suppliers].[CompanyName] as [Supplier] // FROM [dbo].[Products] // LEFT OUTER JOIN [dbo].[Suppliers] // ON [dbo].[Products].[SupplierID] = [dbo].[Suppliers].[SupplierID]; } ``` # For Dapper ``` public static class DapperTest { private static IDbConnection dbConnection = MsSqlRepoFactory.DbConnection; public static void QueryOnly() { var repository = MsSqlRepoFactory.Create(); var result = repository.Query().Top(10); Console.WriteLine(result.Sql()); IEnumerable azProducts = dbConnection.Query(result.Sql()); foreach (var item in azProducts) { Console.WriteLine($"{item.ProductID}\t{item.ProductName2}"); } } public static void DoInnerJoin() { var repository = MsSqlRepoFactory.Create(); var result = repository.Query() .InnerJoin() .On((l, r) => l.SupplierID == r.SupplierID, r => r.CompanyName) .Top(10); Console.WriteLine(result.Sql()); Console.WriteLine(); IEnumerable azProducts = dbConnection.Query(result.Sql()); foreach (var item in azProducts) { Console.WriteLine($"{item.ProductID}\t{item.ProductName2}\t{item.Supplier}"); } } public static void LeftOuterJoin() { var repository = MsSqlRepoFactory.Create(); var result = repository.Query() .LeftOuterJoin() .On((l, r) => l.SupplierID == r.SupplierID, r => r.CompanyName) .Top(10); Console.WriteLine(result.Sql()); Console.WriteLine(); IEnumerable azProducts = dbConnection.Query(result.Sql()); foreach (var item in azProducts) { Console.WriteLine($"{item.ProductID}\t{item.ProductName2}\t{item.Supplier}"); } } public static void QueryWhere() { var repository = MsSqlRepoFactory.Create(); var result = repository.Query() .Where(p => p.ProductName2.Contains("t") && p.ProductID < 100) .Top(10); Console.WriteLine(result.Sql()); Console.WriteLine(); IEnumerable azProducts = dbConnection.Query(result.Sql()); foreach (var item in azProducts) { Console.WriteLine($"{item.ProductID}\t{item.ProductName2}"); } } public static void QueryWhereIn(bool go = false) { var repository = MsSqlRepoFactory.Create(); var result = repository.Query() .WhereIn(p => p.ProductName2, new string[] { "Konbu", "Chang", "Tunnbröd", "Geitost" }); Console.WriteLine(result.Sql()); Console.WriteLine(); IEnumerable azProducts = dbConnection.Query(result.Sql()); foreach (var item in azProducts) { Console.WriteLine($"{item.ProductID}\t{item.ProductName2}"); } } public static void QueryAvg() { var repository = MsSqlRepoFactory.Create(); var result = repository.Query().Select(p => p.ProductID, p => p.ProductName) .Avg(c => c.Quantity, c => c.QuantityAvg) .Avg(c => c.UnitPrice) .GroupBy(c => c.ProductID) .InnerJoin() .On((r, l) => r.ProductID == l.ProductID, l => l.ProductName2) .GroupBy(p => p.ProductName2) .Top(10); Console.WriteLine(result.Sql()); Console.WriteLine(); IEnumerable azOrder_Details = dbConnection.Query(result.Sql()); foreach (var item in azOrder_Details) { Console.WriteLine($"{item.ProductID}\t{item.ProductName}\t{item.QuantityAvg}\t{item.UnitPrice}"); } } public static void QueryUnion() { var repository = MsSqlRepoFactory.Create(); // 此语句不会参与数据查询,只是作为Union的包裹 // 如果此语句本身也是数据查询,请增加到new List中 var result = repository.Query() .Select(c => c.CustomerID, c => c.CompanyName); var result01 = repository.Query() .Select(c => c.CustomerID, c => c.CompanyName) .Where(c => c.CustomerID == "ANATR"); var result02 = repository.Query() .Select(c => c.CustomerID, c => c.CompanyName) .Where(c => c.CustomerID == "FRANK"); var result03 = repository.Query() .Select(c => c.CustomerID, c => c.CompanyName) .Where(c => c.CustomerID == "TRADH"); var resultAllSql = result.UnionSql(new List { UnionSql.New( result01,UnionType.Union ), UnionSql.New( result02,UnionType.Union ), UnionSql.New( result03,UnionType.Union ), }); Console.WriteLine(resultAllSql); Console.WriteLine(); IEnumerable azCustomers = dbConnection.Query(resultAllSql); foreach (var item in azCustomers) { Console.WriteLine($"{item.CustomerID}\t{item.CompanyName}"); } } public static void DoInsertEntityParam() { var repository = MsSqlRepoFactory.Create(); AzProducts azProduct = new AzProducts { ProductName2 = "testvalue" }; var resultinsert = repository .Insert(); Console.WriteLine(resultinsert.ParamSql()); Console.WriteLine(); // 需返回自增字段,所以用Query IEnumerable azProducts = dbConnection.Query(resultinsert.ParamSql(), azProduct); foreach (var item in azProducts) { Console.WriteLine($"{item.ProductID}\t{item.ProductName2}"); } } public static void DoInsertEntityParamBatch() { var repository = MsSqlRepoFactory.Create(); List azProductList = new List{ new AzProducts { ProductName2 = "testvalue1" ,CategoryID=1,UnitPrice=123}, new AzProducts { ProductName2 = "testvalue2" ,CategoryID=1,UnitPrice=123}, new AzProducts { ProductName2 = "testvalue3" ,CategoryID=1,UnitPrice=123}, new AzProducts { ProductName2 = "testvalue4" ,CategoryID=1,UnitPrice=123 }, new AzProducts { ProductName2 = "testvalue5" ,CategoryID=1,UnitPrice=123}, new AzProducts { ProductName2 = "testvalue6" ,CategoryID=1,UnitPrice=123}, }; var resultinsert = repository .Insert().ParamWith(c => c.ProductName2, c => c.UnitPrice, c => c.CategoryID); Console.WriteLine(resultinsert.ParamSql()); Console.WriteLine(); // 需返回自增字段,所以用Query dbConnection.Execute(resultinsert.ParamSql(), azProductList); } public static void DoUpdateEntityParam() { var repository = MsSqlRepoFactory.Create(); var resultUpdate = repository .Update() .ParamSet(p => p.ProductName2, p => p.CategoryID) .Where(p => p.ProductID == p.ProductID); Console.WriteLine(resultUpdate.ParamSql()); Console.WriteLine(); AzProducts products = new AzProducts() { ProductID = 84, ProductName2 = "testvalue100", CategoryID = 7 }; int result = dbConnection.Execute(resultUpdate.ParamSql(), products); Console.WriteLine($"{result}"); } public static void DoDeleteEntity(bool go = false) { var repository = MsSqlRepoFactory.Create(); AzProducts azProducts = new AzProducts { ProductName2 = "testvalue", ProductID = 81 }; var resultUpdate = repository.Delete().For(azProducts); Console.WriteLine(resultUpdate.Sql()); Console.WriteLine(); int result = dbConnection.Execute(resultUpdate.Sql()); Console.WriteLine($"{result}"); } public static void DoDeleteBatch() { var repository = MsSqlRepoFactory.Create(); var resultUpdate = repository.Delete().Where(p => p.ProductID == p.ProductID); List azProductList = new List { new AzProducts{ProductID=88}, new AzProducts{ProductID=89}, new AzProducts{ProductID=90}, new AzProducts{ProductID=91}, }; Console.WriteLine(resultUpdate.Sql()); Console.WriteLine(); int result = dbConnection.Execute(resultUpdate.Sql(), azProductList); Console.WriteLine($"{result}"); } public static void DoDelete() { var repository = MsSqlRepoFactory.Create(); var resultUpdate = repository.Delete().Where(p => p.ProductID == 90); Console.WriteLine(resultUpdate.Sql()); Console.WriteLine(); int result = dbConnection.Execute(resultUpdate.Sql()); Console.WriteLine($"{result}"); } public static void DoDeleteTransaction() { var repository = MsSqlRepoFactory.Create(); var resultUpdate = repository.Delete().Where(p => p.ProductID == p.ProductID); List azProductList = new List { new AzProducts{ProductID=92}, new AzProducts{ProductID=93}, new AzProducts{ProductID=94}, new AzProducts{ProductID=91}, }; Console.WriteLine(resultUpdate.Sql()); Console.WriteLine(); using (var transaction = dbConnection.BeginTransaction()) { dbConnection.Execute(resultUpdate.Sql(), azProductList, transaction: transaction); transaction.Rollback(); } } } ```