[![NuGet](https://img.shields.io/nuget/v/PocoClassGenerator.svg)](https://www.nuget.org/packages/PocoClassGenerator) ![](https://img.shields.io/nuget/dt/PocoClassGenerator.svg) ---

version version version version version version version version version version version version version version version version version

--- PocoClassGenerator is started with `Necroskillz`'s POCO Generator [Generate C# POCOs from SQL statement in LINQPad ](http://www.necronet.org/archive/2012/10/09/generate-c-pocos-from-sql-statement-in-linqpad.aspx) ### Features - Support current DataBase all tables and views generate POCO class code - Support [Dapper.Contrib](https://github.com/StackExchange/Dapper/tree/master/Dapper.Contrib) - Support mutiple RDBMS : `sqlserver,oracle,mysql,postgresql` - mini and faster (only in 5 seconds generate 100 tables code) - Use appropriate dialect schema table SQL for each database query ### DEMO - [POCOGenerator Generate Class By Dynamic SQL | .NET Fiddle](https://dotnetfiddle.net/bDdSCA) ![20191009102303.png](https://i.loli.net/2019/10/09/4AOsU2X8PWBcbGS.png) - [POCO Class Generator GenerateAllTables | .NET Fiddle](https://dotnetfiddle.net/GkdqsU) - [DataTable POCO Class Generator | .NET Fiddle](https://dotnetfiddle.net/vVeYwA) ![image](https://github.com/user-attachments/assets/235c4952-259b-4ecc-90b2-d0138c17316c) ### GetStart 👇First : Copy&Paste [PocoClassGenerator.cs](PocoClassGenerator/PocoClassGenerator/PocoClassGenerator.cs) Code to your project or LINQPad. or Install from [NuGet](https://www.nuget.org/packages/PocoClassGenerator/) ```cmd PM> install-package PocoClassGenerator ``` 👇Second : Use Connection to call `GenerateAllTables` and then print it. ```C# using (var connection = Connection) { Console.WriteLine(connection.GenerateAllTables()); } ``` #### Support Dapper Contrib POCO Class - Just call method with `GeneratorBehavior.DapperContrib` ```C# using (var conn = GetConnection()) { var result = conn.GenerateAllTables(GeneratorBehavior.DapperContrib); Console.WriteLine(result); } ``` **The Online Demo : [POCO Dapper Contrib Class Generator GenerateAllTables | .NET Fiddle](https://dotnetfiddle.net/yeuK1E)** ![image](https://github.com/user-attachments/assets/2989c2dc-8c06-4732-9069-a09605e1b18f) #### Generate Comment ```C# using (var conn = GetConnection()) { var result = conn.GenerateAllTables(GeneratorBehavior.Comment); Console.WriteLine(result); } ``` #### Generate View ```C# using (var conn = GetConnection()) { var result = conn.GenerateAllTables(GeneratorBehavior.View); Console.WriteLine(result); } ``` #### Generate View and Comment and Dapper.Contrib ```C# using (var conn = GetConnection()) { var result = conn.GenerateAllTables(GeneratorBehavior.View | GeneratorBehavior.Comment | GeneratorBehavior.DapperContrib); Console.WriteLine(result); } ``` #### Generate one class by sql 1. Generate one class ```C# using (var connection = Connection) { var classCode = connection.GenerateClass("select * from Table"); Console.WriteLine(classCode); } ``` 2. Specify class name ```C# using (var connection = Connection) { var classCode = connection.GenerateClass("with EMP as (select 1 ID,'WeiHan' Name,25 Age) select * from EMP", className: "EMP"); Console.WriteLine(classCode); } ``` #### DataTablePocoClass Code at [DataTablePocoClassGenerator.cs](https://github.com/shps951023/PocoClassGenerator/blob/master/PocoClassGenerator/PocoClassGenerator/DataTablePocoClassGenerator.cs) ```C# var dt = new DataTable(); dt.TableName = "TestTable"; dt.Columns.Add(new DataColumn() { ColumnName = "ID", DataType = typeof(string) }); var result = dt.GenerateClass(); var expect = @"public class TestTable { public string ID { get; set; } }"; Assert.Equal(expect, result); ```