2013-11-22 305 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()

相關問題