DbSharpApplication - .NET8 存储过程的 DAL C# 源代码生成器
一个 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 上先前版本的功能。您可以通过这篇文章查看它。
如何生成和设置项目
- 下载
DbSharpApplication
。 - 设置数据库连接字符串。
- 将 C# 源代码生成到项目。
- 从 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