Giter Site home page Giter Site logo

pococlassgenerator's Introduction

NuGet


PocoClassGenerator is started with Necroskillz's POCO Generator Generate C# POCOs from SQL statement in LINQPad

Features

  • Support current DataBase all tables and views generate POCO class code
  • Support 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

20190430141947-image.png

GetStart

👇First : Copy&Paste PocoClassGenerator.cs Code to your project or LINQPad.
or Install from NuGet

PM> install-package PocoClassGenerator

👇Second : Use Connection to call GenerateAllTables and then print it.

using (var connection = Connection)
{
	Console.WriteLine(connection.GenerateAllTables());
}

Support Dapper Contrib POCO Class

  • Just call method with GeneratorBehavior.DapperContrib
using (var conn = GetConnection())
{
    var result = conn.GenerateAllTables(GeneratorBehavior.DapperContrib);
    Console.WriteLine(result);
}

The Online Demo : POCO Dapper Contrib Class Generator GenerateAllTables | .NET Fiddle 20190502132948-image.png

Generate Comment

using (var conn = GetConnection())
{
    var result = conn.GenerateAllTables(GeneratorBehavior.Comment);
    Console.WriteLine(result);
}

Generate View

using (var conn = GetConnection())
{
    var result = conn.GenerateAllTables(GeneratorBehavior.View);
    Console.WriteLine(result);
}

Generate View and Comment and Dapper.Contrib

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
using (var connection = Connection)
{
	var classCode = connection.GenerateClass("select * from Table");
	Console.WriteLine(classCode);
}
  1. Specify class name
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

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);

pococlassgenerator's People

Contributors

shps951023 avatar dependabot[bot] avatar

Stargazers

 avatar jobily avatar yihango avatar  avatar Daniel Noel avatar 潤沁軟體 avatar Clayton Hall avatar  avatar  avatar zhangx avatar Neoasis Werx avatar Curt Reese avatar David Shin avatar  avatar Nguyen Viet Manh avatar  avatar XiaoFei Du avatar muzsor avatar Alan Braga avatar Louis's Code World avatar  avatar  avatar Blake Pell avatar Sam Chuang avatar  avatar  avatar Ogz avatar Fisher Tsai avatar Richard Scoop avatar  avatar Halit YURTTAŞ avatar Martin avatar Raile avatar AhmadReza Saghari avatar  avatar Manh Ng avatar Francesco Moroni avatar Serge Eric Hotegni avatar Chei avatar GrizzlyHills avatar R2D2 avatar Nayan Choudhary avatar MartinWang avatar adaruru avatar Adrian Wei avatar  avatar Keivan Beigi avatar tinghuan hsu avatar  avatar  avatar  avatar Mio avatar Tytannial avatar Horace avatar JackLi avatar  avatar  avatar  avatar  avatar ChengWei avatar  avatar  avatar  avatar  avatar O0oo0O avatar Ganeshan Venkataraman avatar MMustafaYILDIZ avatar Alexander Pantyukhin avatar gismofx avatar  avatar  avatar  avatar

Watchers

 avatar Francesco Moroni avatar  avatar Daniel Noel avatar Ogz avatar MMustafaYILDIZ avatar  avatar  avatar  avatar Philippe Waty avatar

pococlassgenerator's Issues

Support Dapper FK POCO

e.g

    [Table("Report")]
    public class Report
    {
        [Key]
        public string Id { get; set; }
        public string Name { get; set; }
        public string Type { get; set; }
        public string Sql { get; set; }
        public string Updatetime { get; set; }
        public string ReportDataBaseId { get; set; }

        public ReportDataBase ReportDataBase { get; set; }
    }

    [Table("ReportDataBase")]
    public class ReportDataBase
    {
        [Key]
        public string Id { get; set; }
        public string Name { get; set; }
        public string DbType { get; set; }
        public string ConnectionString { get; set; }
    }

Query by

	var sql = "SELECT * FROM Report A left JOIN ReportDataBase B on A.ReportDataBaseId = B.ID";
	var result = Connection.Query<Report, ReportDataBase, Report>(sql,
	(b, a) => { b.ReportDataBase = a; return b; });

資料行 'IsAutoIncrement' 不屬於資料表 SchemaTable。

HI

請問我新增PocoClassGenerator 這個CS檔,但是實際實行後出現錯誤訊息:[資料行 'IsAutoIncrement' 不屬於資料表 SchemaTable。]

經查詢為 generatorBehavior.HasFlag(GeneratorBehavior.Comment) 與 generatorBehavior.HasFlag(GeneratorBehavior.DapperContrib)
不一致導致 在 (bool)row["IsAutoIncrement"] 找不到元素。然後引發錯誤,請問該如何處理?

DB:oracle

support Dapper.Contrib

public class Employee
{
    [Key]
    public int EmployeeId { get; set; }
    public string Name { get; set; }
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.