c# - C# 使用静态方法并传入数据库读取器
问题描述
我是 C# 新手,听说过很多关于静态方法在多线程环境中的危险性。我有一个静态方法,我在整个应用程序中使用它并接受一个数据读取器对象。在高并发环境中,保持该方法静态或创建一个类并在我使用它时实例化会更好吗?我正在使用.net core 3.1,方法是DBConnection.SafeRowCheck(Reader)
*
public static class DBConnection
{
public static string SafeRowCheck(NpgsqlDataReader Reader)
{
if (!Reader.IsDBNull(0))
{
return Reader.GetString(0);
}
return "";
}
}
public async Task<string> View()
{
try
{
var results = string.Empty;
using var conn = new NpgsqlConnection(_appSettings.ConnectionString);
await conn.OpenAsync();
using var cmd = new NpgsqlCommand("sql statement", conn);
await cmd.PrepareAsync();
await cmd.ExecuteNonQueryAsync();
using var Reader = await cmd.ExecuteReaderAsync();
if (await Reader.ReadAsync())
{
results = DBConnection.SafeRowCheck(Reader);
}
}
Catch(Exception e)
{
// Catch exception
}
}
解决方案
推荐阅读
- homebrew - 我正在尝试在 Tesseract 上安装阿拉伯语数据,但是当我这样做时,它给了我这个:
- openrefine - 在 OpenRefine 中将可变数量的行转换为列
- raspberry-pi - 找不到 Yocto 食谱
- javascript - 简化代码:二维数组的高度和宽度
- python - Django 2 在 Heroku 上部署后停止工作
- c# - 无法使用 c# 和 XDocument 找出 XML 结构
- c# - 从另一个类调用异步方法
- c# - 使用 ajax 和路由 url 渲染部分
- javascript - 更新多维数组的元素
- fortran - Fortran中Verlet算法的错误顺序错误