一個更好的的executeQuery和ExecuteCommand我Linq中 工作現在我想知道,這是更好,然後從下面來運行SQL查詢。Linq中
1)的executeQuery
2)ExecuteCommand
一個更好的的executeQuery和ExecuteCommand我Linq中 工作現在我想知道,這是更好,然後從下面來運行SQL查詢。Linq中
1)的executeQuery
2)ExecuteCommand
這兩種方法的executeQuery和ExecuteCommand是LINQ的DataContext的方法。對於LINQ to SQL沒有充分提供特定場景的情況,它們是傳遞機制。這將是罕見的,你會使用LinqToSql這些方法,因爲你會失去LINQ的表現力是使用LINQ的主要原因。您也將失去在查詢中使用強類型變量的價值,這是使用LINQ的另一個主要優勢。
它被認爲是編程習慣差,構建SQL查詢字符串,然後將其直接轉給數據庫,因爲SQL命令其構造從字符串元素一直是途徑數據庫黑客稱爲SQL注入。因此,一般情況下,建議避免使用ExecuteQuery和ExecuteCommand,除非絕對必要且非常小心。現在,我說了這麼多
,這裏是當將使用這些方法的說明。的executeQuery將被用來執行SELECT語句,而ExecuteCommand將被用來執行插入,更新,刪除或調用存儲過程。
但是,你應該使用LINQ查詢語法或LINQ lambda語法,讓你的SQL調用,而不是使用的executeQuery或ExecuteCommand。
你可以看到ExecuteCommand返回類型是int,所以如果你想截斷table/DROP DATABASE/identity reset或檢查當前值/設置ANSI nulls(返回結果),可以使用它。 ExecuteQuery返回類型是IEnumerable,因此在您提供的SQL語句返回記錄集的情況下使用它。
如果有人有更多見解,請添加您的評論。
ExecuteQuery和ExecuteCommand與LINQ無關 –
其實這兩個都是linq的db上下文中的方法,而不是在linq功能的內部讓你對數據庫進行原始查詢,所以基本上這個問題沒有錯。 http://msdn.microsoft.com/en-us/library/system.data.linq.datacontext.executecommand.aspx http://msdn.microsoft.com/en-us/library/bb361109.aspx http://msdn.microsoft.com/en-us/library/bb534292.aspx – ncubica