Powered by Open AI Tx

NuGet


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


PocoClassGenerator 起始于 Necroskillz 的 POCO 生成器 Generate C# POCOs from SQL statement in LINQPad

功能

示例演示

image

快速上手

👇第一步:复制并粘贴 PocoClassGenerator.cs 代码到你的项目或 LINQPad。
或者通过 NuGet 安装。

PM> install-package PocoClassGenerator

👇第二步:使用连接对象调用 GenerateAllTables 并打印结果。

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

支持 Dapper Contrib POCO 类

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

在线演示 : POCO Dapper Contrib Class Generator GenerateAllTables | .NET Fiddle

image

生成注释

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

生成视图

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

同时生成视图、注释及 Dapper.Contrib

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

通过 SQL 生成单个类

  1. 生成单个类
using (var connection = Connection)
{
	var classCode = connection.GenerateClass("select * from Table");
	Console.WriteLine(classCode);
}
  1. 指定类名
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

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