C# 当我尝试展开模型属性时,为什么Visual Studio 2013调试器会毫无错误地关闭?

C# 当我尝试展开模型属性时,为什么Visual Studio 2013调试器会毫无错误地关闭?,c#,asp.net-mvc,entity-framework,debugging,visual-studio-2013,C#,Asp.net Mvc,Entity Framework,Debugging,Visual Studio 2013,我有一个小的ASP.NET MVC5项目,首先使用实体框架代码。我在控制器中放置了一个断点,这样我就可以检查变量的内容,以确保它们都包含它们应该包含的内容。一个这样的变量是一个复杂的模型对象,我从上下文中查询该对象,当我试图扩展该对象以查看其属性时,调试器只是关闭,没有明显的错误消息。我得到的唯一解释是在输出中,内容如下: 我查找了退出代码2147023895(0x800703e9),只发现这是一个堆栈溢出问题,这实际上无助于找出导致它的原因 最不寻常的是,如果我让应用程序运行,它将毫无问题地加

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

我查找了退出代码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 string QuarterAndYear {get{ return QuarterAndYear; }}
这是一个粗心的错误,我告诉它自己返回,这让我很头疼,因为我试图找出它为什么会在没有错误信息的情况下崩溃。应该是:

public string QuarterAndYear {get{ return Quarter.toString() + " Quarter of " + Year;}}
因为我实际上没有在视图中引用QuarterAndYear,所以在加载页面时没有抛出任何错误,而且它似乎运行得很好。但是,当我在调试时试图查看Quarter对象的属性时,它试图解析QuarterAndYear(它正在返回自己),并使调试器崩溃

...
@Html.LabelFor(model => model.Quarter.Quarter)
@Html.DisplayFor(model => model.Quarter.Quarter)
...
public string QuarterAndYear {get{ return QuarterAndYear; }}
public string QuarterAndYear {get{ return Quarter.toString() + " Quarter of " + Year;}}