PocoClassGenerator Github连结
说明
PocoClassGenerator起于个人工作上需求需要为不同的RDBMS的Table跟View生成Dapper POCO类代码
,以Necroskillz
的文章 Generate C# POCOs from SQL statement in LINQPad为基础开端开发功能。
自己身为Dapper、Dapper.Contrib、轻量化爱好者很喜欢这小工具,希望也帮到有需要的版友 :)
主要功能
支持当前资料库全部表格、View批量生成POCO类别代码
支持Dapper.Contrib: 自动判断/添加 [Key]、[ExplicitKey]、[Computed]支持多资料库
SQLServer、Oracle、MySQL、PostgreSQL效率挺快的,一百个表格5秒以内跑完支持类别注解Comment生成,方便辨认栏位资料一般POCO Class 测试连结/效果图:
Online Demo : POCO Class Generator GenerateAllTables | .NET Fiddle
Dapper Contrib 测试连结/效果图:
The Online Demo : POCO Dapper Contrib Class Generator GenerateAllTables | .NET Fiddle
使用方式
第一步 : 複製/贴上 PocoClassGenerator.cs 代码到你的专案或是LINQPad.或是喜欢NuGet套件的使用者,这边有打包NuGet连结方便下载,或是使用CLI命令
PM> install-package PocoClassGenerator
第二步 : 使用 Connection 物件去呼叫GenerateAllTables
方法并显示生成字串using (var connection = Connection){Console.WriteLine(connection.GenerateAllTables());}
支持 Dapper Contrib POCO Class
呼叫方法并使用GeneratorBehavior.DapperContrib
参数using (var conn = GetConnection()){ var result = conn.GenerateAllTables(GeneratorBehavior.DapperContrib); Console.WriteLine(result);}
生成 View
using (var conn = GetConnection()){ var result = conn.GenerateAllTables(GeneratorBehavior.View); Console.WriteLine(result);}
生成 Class Comment
using (var conn = GetConnection()){ var result = conn.GenerateAllTables(GeneratorBehavior.Comment); Console.WriteLine(result);}
以SQL生成单类别
以资料库表格名称当类别名称using (var connection = Connection){var classCode = connection.GenerateClass("select * from Table");Console.WriteLine(classCode);}
指定类别名称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);}