DotNet相关
你真的理解 ASP.NET Core 的中间件吗?搞懂它只需要这一篇
独孤求败 发表于2026-02-13 浏览19 评论0
在 ASP.NET Core 的设计中,高性能、高灵活性和模块化并不是偶然结果,而是源于一套非常清晰的架构理念。其中,
DotNet相关
一文全解ASP.NET Core 中的JWT认证
独孤求败 发表于2026-02-11 浏览18 评论0
DotNet相关
谁说.NET没有智能体?使用 Microsoft Agent Framework 构建 AI 智能体
独孤求败 发表于2026-02-11 浏览15 评论0
DotNet相关
RabbitMQ发布订阅模式同一消费者多个实例如何防止重复消费?
独孤求败 发表于2026-02-11 浏览13 评论0
微服务架构模式中,服务间的通信一般采用HTTP、RPC或者MQ(消息队列)。在这三种方案中,HTTP和RPC是一对一的方式,通常用来进行查询或者命令式的操作,MQ则多用于事件的发布和处理。
DotNet相关
WebAPI 项目通过 CI/CD 自动化部署到 Linux 服务器(docker-compose)
独孤求败 发表于2026-02-11 浏览16 评论0
DotNet相关
笔记:如何使用 Entity Framework Core
独孤求败 发表于2026-01-25 浏览49 评论0
前言#
在本篇文章中,着重介绍如何使用 Entity Framework Core,不过多涉及底层细节。
Entity Framework Core(简称 EF Core)是微软为.NET 平台打造的轻量级、跨平台对象关系映射(ORM)框架,以编写 C# 对象代码的方式操作各类数据库,无需大量手写原生 SQL 语句。
DotNet相关
DotNet10极简数据库对象关系映射
独孤求败 发表于2026-01-25 浏览30 评论0
有时候不想使用EF等ORM框架,想要实现的功能也简单,就是获取一条或者多条记录,于是自己折腾了一个,代码如下:
public class SqlFetch
{
private readonly string _ConnectionString;
/// <summary>
/// 获取数据库连接字符串
/// </summary>
/// <param name="config"></param>
public SqlFetch(IConfiguration config)
{
_ConnectionString = config.GetSection(SectionConsts.ConnectionString).Get<string>()!;
}
/// <summary>
/// 获取多条记录
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="commandText"></param>
/// <param name="func"></param>
/// <returns></returns>
public Task<List<T>> ToListAsync<T>(string commandText, Func<IDataReader, T> func) => ToListAsync(commandText, [], func);
/// <summary>
/// 获取多条记录,带参数
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="commandText"></param>
/// <param name="paras"></param>
/// <param name="func"></param>
/// <returns></returns>
public async Task<List<T>> ToListAsync<T>(string commandText, List<SqlParameter> paras, Func<IDataReader, T> func)
{
var items = new List<T>();
var cn = new SqlConnection(_ConnectionString);
var cmd = cn.CreateCommand();
cmd.CommandText = commandText;
if (paras.Count > 0)
cmd.Parameters.AddRange(paras.ToArray());
await cn.OpenAsync();
var dr = await cmd.ExecuteReaderAsync();
while (await dr.ReadAsync())
items.Add(func(dr));
await dr.CloseAsync();
await cn.CloseAsync();
return items;
}
/// <summary>
/// 获取单条记录
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="commandText"></param>
/// <param name="func"></param>
/// <returns></returns>
public async Task<T?> SingleOrDefaultAsync<T>(string commandText, Func<IDataReader, T> func)
{
var cn = new SqlConnection(_ConnectionString);
var cmd = cn.CreateCommand();
cmd.CommandText = commandText;
await cn.OpenAsync();
var dr = await cmd.ExecuteReaderAsync();
try
{
if (await dr.ReadAsync())
return func(dr);
else
return default;
}
finally
{
await dr.CloseAsync();
await cn.CloseAsync();
}
}
}DotNet相关
Visual Studio 2026 来了:更快、更智能,深受老用户的喜爱
独孤求败 发表于2026-01-24 浏览32 评论0
我们非常激动地宣布,Visual Studio 2026 现已正式发布!这一刻是我们与您携手共创的成果。您的反馈对本次版本的塑造作用超过了以往任何一次。自 2025 年 9 月推出 Insiders 通道以来,下载并测试该预览版的开发者数量创下了 Visual Studio 历史新高。
在此次版本发布前的一年里,我们修复了超过 5000 个你们反馈的程序缺陷,并实现了300项功能需求。这是我们有史以来完成量最多的一次,而我们才刚刚开始!
此次发布包含多项性能改进、重新设计的用户体验以及人工智能驱动开发方面的重大飞跃,旨在帮助开发者专注于真正重要的事情:创新。如今,每一次点击、每一次按键和每一次编译都更加流畅、快速且直观 —— 让您能够以前所未有的速度将想法转化为代码。
DotNet相关
.NET 10了,HttpClient还是不能用using吗?我做了一个实验
独孤求败 发表于2026-01-24 浏览32 评论0
引言:这个“最佳实践”到底过时了吗?
每隔一段时间,就会看到类似问题反复出现:
“都 .NET 10 了,
HttpClient还不能using吗?我每次请求new HttpClient(),用完Dispose(),不是很合理?”
这类问题之所以经久不衰,是因为它
DotNet相关
如何使用EFcore查询a表中符合b表列的值
独孤求败 发表于2026-01-23 浏览26 评论0
在Entity Framework Core (EF Core) 中,如果你想要查询表A中那些其某些列的值与表B中某一列的值相匹配的记录,你可以使用多种方法来实现这一需求。这里我将介绍几种常用的方法:
方法1:使用 Contains
假设你有两个实体类 A 和 B,你想要找到所有在表A中,其某个字段(例如 FieldA)的值在表B的某个字段(例如 FieldB)中存在的记录。