分类 .NET 下的文章

.NET Core让 EF Core 在日志中记录由LINQ生成的SQL语句

在开发中,我们想在调试中查看EF Core执行的sql语句,可以使用SQL Studio Manager Tools工具,另一种方式是使用EF Core提供的日志,在ASP.NET Core使用Entity Framework Core的日志。

早在Entity Framework Core1.0,使用相关的ILoggerProvider ILogger 这些基础接口类.来实现过日志记录。

在Entity Framework Core2.0,估计是为了配合ASP.NET Core的日志,所以对这些接口进行了更进一步的包装,也弃用了一些接口和类,如:IRelationalCommandBuilderFactory,DbCommandLogData 但是Entity Framework Core2.0 在DbContextOptionsBuilder添加了新的扩展方法。UseLoggerFactory 看到LoggerFactory,研究过ASP.NET Core日志记录的,应该就很熟悉了。这是ASP.NET Core日志记录的工厂类。也就是为什么我们如果在ASP.NET Core中注入自己的日志记录,也可以通过配置来记录相关的SQL操作的原因。这里我们主要是直接只监控EF Core的日志。

阅读剩余部分

.NET 6中的PriorityQueue,表示具有值和优先级的集合

前言

我们常用Queue<T>类来表示先进先出(FIFO)集合,集合中的对象按照放入顺序检索。例如:

var jobs = new Queue<Job>();
 
jobs.Enqueue(new Job() { Id = 1 });
jobs.Enqueue(new Job() { Id = 2 });
jobs.Enqueue(new Job() { Id = 3 });
 
while (jobs.TryDequeue(out var job))
{
    Console.WriteLine(job.Id);
}
//输出
1
2
3

阅读剩余部分

.NET 6使用workload管理SDK工作负载

为了应对.NET SDK能够支持的程序集项目(例如iOS、Android、WASM)的不断增长,从.NET 6开始,允许用户仅安装必要的SDK(例如ASP.NET Core),而不是一次性安装“完整版”SDK。

这一切的基础,是新的dotnet CLI命令——workload

1,工作负载列表

首先,列出可安装的工作负载:

dotnet workload search

阅读剩余部分

.NET 6的模式匹配之Extended Property Patterns

模式匹配是一种测试表达式以确定其是否具有某些特征的技术。

例如, 下面的Employee类和Manager类:

public class Employee
{
    public int Id { get; set; }
    public string Name { get; set; }
    public Manager? Manager { get; set; }
}

public class Manager : Employee
{
    public string Position { get; set; }
}

阅读剩余部分