2013-11-22 251 views
0

我在安装.NET 4.5的Windows 8机器上运行VS 2010 SP1中的.NET 3.5编译的C#项目(如果有的话)。为什么我的方法不被调用?

我有一个看起来像的方法如下:

private IEnumerable<TModel> ExecuteAndGet<TModel>(string name, IEnumerable<SqlParameter> parameters) 
     where TModel : new() 
{ // <-- Breakpoint 1 

    // Non-trivial code so I doubt the method call is being optimized away 
    // Or something if that's even possible. 
} 

在同一个类中不同的方法,我称之为ExecuteAndGet像这样:

this.ExecuteAndGet<object>("[dbo].[SomeStoredProcedure]", parameters); // <-- Breakpoint 2 

这绝对是该方法的唯一超载。在调试模式下运行程序时,我打断点2.我试过的只是普通的“F5”和“步入”,但它完全跳过了内部方法,它跳过了断点1.我不知道为什么会发生这种情况。其他电话ExecuteAndGet正在工作,我不明白为什么这是任何不同的。请帮助?

谢谢。

+0

您可以发布更多的代码吗?它可能是由你认为正在工作的东西造成的 –

+2

你确定你已经完成了构建?尝试做一个“干净”,然后是你的项目的“建设”,看看是否有帮助 – Default

+0

你有什么错误或什么? – P5Coder

回答

3

你实际上并没有列举。尝试:

this.ExecuteAndGet<object>("[dbo].[SomeStoredProcedure]", parameters).ToList(); 
+0

啊完美。这工作!感谢大家 :) –

1

返回的枚举被实现为迭代器块。迭代器块内的代码直到第一次枚举时才会实际执行,例如,添加电话.ToArray().ToList()

相关问题