2
我正在使用實體框架來編寫使用ASP.NET MVC編寫的應用程序。如何執行存儲過程並忘記使用C#和實體框架?
我需要能夠調用存儲過程並忘記它。我不關心我只是想觸發它的結果。
我試圖通過使用單獨的連接來調用使用ExecuteSqlCommandAsync
方法的存儲過程來完成該操作。但是這個存儲過程似乎並沒有被解僱。
這裏是我的異步方法
protected async Task ProcessRecords(DateTime loadedAt, string email)
{
try
{
using (var conn = new AppContext())
{
var result = conn.Database.ExecuteSqlCommandAsync("EXEC [DedecatedProcesses] @p0, @p1;", loadedAt, email);
await Task.WhenAll(result);
}
}
catch (Exception e)
{
// Do something with e.Message
}
}
然後從操作方法與控制器我把它像這樣
var loaded = ProcessRecords(DateTime.UtcNow, model.Email);
運行我的代碼,我沒有得到任何錯誤,但程序不運行。
當我使用SSMS執行存儲過程時,它運行時沒有問題。
如何正確調用存儲過程並忘記它?
只有當語句中有多行時才需要'EXEC',因此在您的代碼中沒有必要使用 – Dalorzo
@Dororzo感謝您的支持。但是關於如何觸發SP並忘記它的任何線索? –
首先嚐試運行而不使用封裝異步方法。並確保您正確調用過程。 我通常通過使用「功能導入」將模型添加到模型中來運行我的實體中的特效。 – DaniDev