如果你正在尋找有EF做所有繁重的任務和任務,然後@ Haider-m-rizvi在代碼映射上是正確的。
但是,如果你只想簡單地調用數據庫中的一個存儲過程,那麼使用Fluent API有一個更簡單的執行方法。
以下是我所有SProcs/Function方法組成的3個一般簽名。
public static IEnumerable<T> ExecuteSProc<T> (this DbContext ctx , string schema , string sproc , params SqlParameter[] para) {
return ctx.Database.SqlQuery<T>("Execute " + schema + "." + sproc , para).ToArray();
}
public static T ExecuteSProcSingle<T> (this DbContext ctx , string schema , string sproc , params SqlParameter[] para) {
return ctx.Database.SqlQuery<T>("Execute " + schema + "." + sproc , para).SingleOrDefault();
}
public static int ExecuteSProc (this DbContext ctx , string schema , string sproc , params SqlParameter[] para) {
return ctx.Database.ExecuteSqlCommand("Execute " + schema + "." + sproc , para);
}
我將定期發佈,我高潮了幾個職位到這裏執行的單獨構建的概念有點怪癖:http://theithobbit.blogspot.com/
的終極遊戲與這樣的設計是爲了執行需要,如果你的存儲過程在SSMS中,同樣定義了參數,模式等。類似於執行RAW動態SQL。