状态模式
状态模式
DbContext 应该被当成一次性、串行使用的工作单元,而不是可共享的并发容器。只要一段业务里存在并行执行,就要拆成多个 DbContext 实例,不要试图让同一个实例同时跑多个 EF Core 操作。
IDisposable 的价值不在于“手动管理内存”,而在于为垃圾回收器看不见的资源定义一个明确的释放边界;实际使用时,优先把释放动作交给 using。
LINQ 是否保持流式执行,关键不在查询写了几层,而在中间步骤有没有主动把序列物化成集合。只要你在自定义扩展或查询链里插入 .ToList() 这类操作,后续流程就会从“边枚举边产生结果”变成“先把上游全部拉进内存,再继续处理”。
https://learn.microsoft.com/en-us/dotnet/standard/linq/chain-queries-example
索引不是“加上就会更快”的通用优化开关,它本质上是额外维护的一份有序数据结构:查询受益,写入和存储付费。
大多数产品的规模永远不会触及需要专用数据库的瓶颈,先从简单方案出发,等真正遇到功能需求时再升级。
UserControl:适合组合已有组件,在应用内部使用;
设置导航属性不意味着一定要使用 Include 的方式加载数据。
Step 1. Project Setup
是一种类型,表示方法签名(可指向一个或多个方法)。
你承接了从需求到具体代码实现之间的设计,你完全了解代码的结构,异常的边界,你指导 AI 去实现具体的代码编写,从而为自己节省时间和精力。
在 Windows 上意外递归创建了很深层的文件目录,占用倒是不大,但是直接删除删除不掉,文件管理器报错。
private static async void FireAndForgetMethod()
https://github.com/dotnet/wpf/blob/main/Documentation/developer-guide.md
从思路上来说 CancellationToken 是 .NET 提供的一种类型,这种类型的变量被用来从一个任务的外部终止任务。
从 DI 容器中获得实例的时候,需要泛型或者 Type 实例,如果直接通过类型或者 typeof 关键字获取,都会使得当前项目依赖于所需要导航到的视图所属的项目(同一个项目内是无所谓,但一旦开始模块化这就会造成耦合)。
用于 CommunityToolkit.Mvvm 的 partial property Code Snippet。
https://learn.microsoft.com/en-us/dotnet/desktop/wpf/events/object-lifetime-events
https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/await
private const double doubleVal = 10.789738975897389458937485738947857349;
// Source - https://stackoverflow.com/a/57430389
官方的 demo 中使用的是控制台程序,并通过 Console.ReadKey 来避免程序结束。
状态(State):系统在某一时刻所处的稳定情形
依赖于 CommunityToolkit.Mvvm 的简单导航。
不借用字符串去定位 ContentControl;
1. 创建一个 Window
1. 在应用所需显示 snackbar 的位置放置一个 ContentControl 控件作为容器(在 WPF-UI 中,这个容器是 SnackbarPresenter);
一般都会从主分支拉自己的分支,然后进行修改。