8
程序我在SqlServer的兩個簡單的存儲過程:執行存儲從的DbContext
SetData(@id int, @data varchar(10))
GetData(@id int)
。
GetData
當前返回單行單列結果集,但如果需要,我可以將其更改爲適當的函數。
從DbContext
實例執行這些操作的最佳方法是什麼?
如果可能,我想避免自己做連接狀態管理和/或暴露EF特定類型。我開始檢索ObjectContext
並查看Execute*
函數,但文檔非常糟糕,缺少涉及存儲過程的示例。
理想情況下,我希望能夠做到這一點:
myContext.ExecuteNonQuery("SetData", id, data);
var data = myContext.ExecuteScalar<string>("GetData", id);
怎麼樣的參數?我必須按照這裏指定的方式來執行還是有快捷方式? http://stackoverflow.com/questions/4873607/how-to-use-dbcontext-database-sqlquerytelementsql-params-with-stored-procedu/4874600#4874600 – 2011-06-08 18:32:06
這是一種方法。它也應該工作而不使用'SqlParameter' - 只傳遞值。我不確定在直接使用值時,是否不必通過@ p0,@ p1等引用它們。 – 2011-06-08 18:55:22
我最終傳遞了一個匿名對象並將其轉換爲SqlParameters內部。 – 2011-06-08 19:29:03