65.9K
CodeProject 正在变化。 阅读更多。
Home

DbSharpApplication - .NET8 存储过程的 DAL C# 源代码生成器

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2024年1月26日

CPOL

2分钟阅读

viewsIcon

5935

downloadIcon

216

一个 C# 源代码生成器,用于生成存储过程客户端类,方便您轻松调用存储过程。

引言

DbSharpApplication 是文章 DbSharp - .NET6 的 DAL 生成工具 的新版本,这篇文章我发布于 10 年前。

去年,我决定改进它的设计。我从头开始,删除了冗余功能,并重新设计了它以方便使用。

功能摘要

DbSharpApplication 生成 C# 代码。您设置项目并通过 Nuget 添加一些引用。

现在您可以像这样轻松调用存储过程

var sp = new Usp_Structure();
sp.BigIntColumn = 1;
//User defined table type parameter. TVP(table value parameter)
var r = new MyTableType.Record();
r.BigIntColumn = 2;
sp.StructuredColumn.Records.Add(r);
var spResult = await sp.ExecuteNonQueryAsync();

var sp1 = new Usp_SelectMultiTable();
var resultSetList = await sp1.GetResultSetsListAsync();
foreach (var item in resultSetList.ResultSetList)
{
    //Do something...
    var text = item.CharColumn;
    Console.WriteLine(item.BigIntColumn);
}

您可以轻松从 C# 调用存储过程。生成的类是强类型的,因此您可以使用 IntelliSense 进行选择。

DbSharpApplication 支持表值参数、输出参数、结果集、枚举值等。DbSharpApplication 继续提供 .NET6 上先前版本的功能。您可以通过这篇文章查看它。

DbSharp - .NET6 的 DAL 生成工具

 

如何生成和设置项目

  1. 下载 DbSharpApplication
  2. 设置数据库连接字符串。
  3. 将 C# 源代码生成到项目。
  4. 从 Nuget 添加引用。

下载 DbSharpApplication

您可以从 此链接 下载。

启动 .exe

设置生成设置

您可以按左侧面板中的 添加 按钮生成设置。

通过 设置 按钮添加连接字符串。将打开一个窗口。

您可以添加您的连接字符串列表。

这些连接字符串将保存在用户文件夹中的文件中。

例如) C:\Users\Higty\HigLabo\DbSharpApplication\ConfigData.xml

生成 C# 源代码

选择您之前添加的连接字符串,按钮会显示。

加载存储过程 按钮。将加载存储过程列表。

选择存储过程并按底部 生成 按钮。

加载存储过程参数。

设置输出文件夹、命名空间、数据库密钥。按 生成 按钮。C# 源代码将被生成到指定的文件夹。

如果存储过程具有 resultset,请按 加载结果集 按钮。

Resultset 已加载。

从 Nuget 添加引用

要编译项目,您必须添加这些引用。

  • HigLabo.Core
  • HigLabo.Data
  • HigLabo.Data.SqlServer
  • HigLabo.DbSharp
  • HigLabo.DbSharp.SqlServer

现在,您可以编译项目了。

我在 GitHub 上创建了一个示例项目。

如何使用该类

设置 DatabaseFactory 类。如果您将数据库密钥设置为“HigLabo”,则将“HigLabo”传递给第一个参数。

StoredProcedure.DatabaseFactory.SetCreateDatabaseMethod
    ("HigLabo", () => new SqlServerDatabase("My connection string..."));

现在,您可以轻松使用用户定义的表类型调用存储过程。

var sp = new Usp_Structure();
sp.BigIntColumn = 1;
//User defined table type parameter. TVP(table value parameter)
var r = new MyTableType.Record();
r.BigIntColumn = 2;
sp.StructuredColumn.Records.Add(r);
var spResult = await sp.ExecuteNonQueryAsync();

您可以获取结果集。

var sp1 = new Usp_SelectMultiTable();
var resultSetList = await sp1.GetResultSetsListAsync();
foreach (var item in resultSetList.ResultSetList)
{
    //Do something...
    var text = item.CharColumn;
    Console.WriteLine(item.BigIntColumn);
}

您可以在下面的链接中查看示例代码

结论

DbSharpApplication 不是 ORM,它是 DAL 的生成器。生成 C# 代码后,您可以轻松调用它。

历史

  • 2024 年 1 月 26 日:初始版本
  • 2 月 2 日,DbSharpApplication 更新至 8.1.0.0
© . All rights reserved.