PocoClassGenerator 起始于 Necroskillz 的 POCO 生成器 Generate C# POCOs from SQL statement in LINQPad
功能
- 支持当前数据库所有表和视图生成 POCO 类代码
- 支持 Dapper.Contrib
- 支持多种关系型数据库:
sqlserver,oracle,mysql,postgresql - 轻量且高速(仅需5秒即可生成100个表的代码)
- 针对每种数据库采用合适的方言表结构 SQL 进行查询
示例演示
快速上手
👇第一步:复制并粘贴 PocoClassGenerator.cs 代码到你的项目或 LINQPad。 或者通过 NuGet 安装。
PM> install-package PocoClassGenerator👇第二步:使用连接对象调用 GenerateAllTables 并打印结果。
``C#
using (var connection = Connection)
{
Console.WriteLine(connection.GenerateAllTables());
}
#### 支持 Dapper Contrib POCO 类
- 只需调用方法并传递 GeneratorBehavior.DapperContrib
在线演示 : POCO Dapper Contrib Class Generator GenerateAllTables | .NET Fiddle
#### 生成注释
C#
using (var conn = GetConnection())
{
var result = conn.GenerateAllTables(GeneratorBehavior.Comment);
Console.WriteLine(result);
}
#### 生成视图
C#
using (var conn = GetConnection())
{
var result = conn.GenerateAllTables(GeneratorBehavior.View);
Console.WriteLine(result);
}
#### 同时生成视图、注释及 Dapper.Contrib
C#
using (var conn = GetConnection())
{
var result = conn.GenerateAllTables(GeneratorBehavior.View | GeneratorBehavior.Comment | GeneratorBehavior.DapperContrib);
Console.WriteLine(result);
}
#### 通过 SQL 生成单个类- 生成单个类
C#
using (var connection = Connection)
{
var classCode = connection.GenerateClass("select * from Table");
Console.WriteLine(classCode);
}
- 指定类名
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
代码位置: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); ``
--- Tranlated By Open Ai Tx | Last indexed: 2025-06-29 ---