为什么 Visual Studio 2013 调试器在我尝试展开模型属性时没有错误地关闭?

Why is the Visual Studio 2013 debugger closing without error when I try to expand Model properties?

我有一个小型 ASP.NET MVC5 项目,使用 Entity Framework Code First。我在我的控制器中放置了一个断点,以便我可以检查我的变量的内容以确保它们都包含它们应该包含的内容。一个这样的变量是一个复杂的模型对象,我从上下文中查询它,当我尝试展开该对象以查看其属性时,调试器只是关闭而没有明显的错误消息。我得到的唯一解释是在输出中:

The program '[10820] iisexpress.exe: Program Trace' has exited with code 0 (0x0).
The program '[10820] iisexpress.exe' has exited with code -2147023895 (0x800703e9).
The program '[12128] iexplore.exe' has exited with code -1 (0xffffffff).

我查看了退出代码 -2147023895 (0x800703e9),只知道这是一个堆栈溢出问题,确实无助于找出导致它的原因。

最不寻常的是,如果我让应用程序 运行,它加载页面没有问题,而且似乎根本没有抛出任何错误。这是怎么回事?

这是我的相关代码:

控制器

public ActionResult Index()
{
    //This is the line that crashed the debugger if I try to expand quarter
    //after it is filled. There will only ever by one item marked isCurrent.
    Quarter quarter = db.Quarter.First(x => x.isCurrent == true);

    ...
}

型号

public class Quarter
{
    public int Id {get; set;}
    public Enums.QuarterEnum Quarter {get; set;}
    public string Year {get; set;}
    public bool isCurrent {get; set;}
    [NotMapped]
    public string QuarterAndYear {get{ return QuarterAndYear; }}
}

查看

...
@Html.LabelFor(model => model.Quarter.Quarter)
@Html.DisplayFor(model => model.Quarter.Quarter)
...

我四处寻找这个问题的解决方案,但找不到任何真正对我有帮助的东西,所以我选择 post 在这里解释为什么会发生这种情况以及修复它的超级简单的更改。

问题出在模型中:

public string QuarterAndYear {get{ return QuarterAndYear; }}

我的一个粗心错误,告诉它 return 本身,这让我非常头疼,试图弄清楚为什么它没有错误消息就崩溃了。应该是:

public string QuarterAndYear {get{ return Quarter.toString() + " Quarter of " + Year;}}

因为我实际上并没有在视图中引用 QuarterAndYear,所以当我加载页面时没有出现任何错误,而且看起来 运行 很完美。但是,当我在调试时尝试查看 Quarter 对象的属性时,它试图解析 QuarterAndYear(它本身是 returning)并且使调试器崩溃。