考虑我在Dot Net 6的新控制台模板中编写的代码的简短版本,如下所示:
using Microsoft.EntityFrameworkCore;
var opt = new DbContextOptionsBuilder<MyDbContext>()
.UseSqlite("ConnectionString...").Options;
using var dbCon = new MyDbContext(opt);
dbCon.Authors.Include(a => a.Books.Where(b => b.PublicationYear > 2021)).ToList().ForEach(author =>
{
// cw generates following model
global::System.Console.WriteLine();
});
// cw acting normal
Console.WriteLine();
new List<object>().ForEach(a =>
{
// cw acting normal
Console.WriteLine();
});
当在dbCon.Authors.Include...
块中使用cw
CodeSnippet时,Visual Studio生成global::System.Console.WriteLine();
,但在其他场景中,如我在上面的代码中提到的,这是正常的。
我用:
Visual Studio 2022 Version 17.1.5
这是一个bug,还是我错过了什么?
我不知道为什么它会这样做,但我有同样的问题。我注意到的是,当我打开一个旧项目,从另一个项目粘贴新代码时,错误出现了,然后当它运行时,它甚至说,&;hello world&;
这让我相信Visual Studio在某种程度上读取了最初生成的代码。我创建了一个新项目,粘贴了相同的代码,突然间cw就像预期的那样工作了。
我希望这对你有帮助。
tl;wr -关闭并重新打开标签页,然后它会像新的一样工作(如果你的问题和我的一样)
在一次奇怪的Visual Studio崩溃后,我也遇到了同样的问题,我决定把我的代码移到一个新的位置。
原来Visual Studio有一些开着代码的旧选项卡,正是在这些旧选项卡中,像cw这样的代码片段给了我全局的::System.Console.WriteLine()代码,正常的颜色编码停止了工作。
你可以看到如果你把鼠标悬停在一些旧的选项卡上,它会显示文件的路径。因此,当我简单地关闭选项卡/文件并从解决方案资源管理器中重新打开相同的文件时,一切都工作正常:)
希望它能帮助任何在开始编辑XML和解决方案路径等之前遇到这种愚蠢情况的人。