私はストアドプロシージャを使用しており、Microsoft Entity Framework Coreが提供する "FromSql"機能を使用してストアドプロシージャを実行しています。Entity FrameworkはSQL例外をキャッチしません
SQL例外が存在する場合、Entity Frameworkは例外をまったくキャッチしません。
以下の例では、ストアドプロシージャ「GetAppSections」がSQLにありません。アプリケーションを実行すると、デバッグモードでローカルウィンドウ内に「missing stored proc」エラーがあります。
しかし、ロジックは「キャッチ」ブロックには決して行きません.Entity Frameworkは単に「FromSql」コマンドを実行し、空のオブジェクトを返します。 「catch」ブロックは決してヒットしません。
なぜEntity FrameworkがSQLから "stored proc missing"例外をキャッチしていないのでしょうか?
public virtual IEnumerable<appSection> GetSections()
{
try
{
return _context.appSections.FromSql("dbo.GetAppSections @p0",
parameters: new[] { _standarParams.userID.ToString()}).AsEnumerable();
}
catch (Exception ex)
{
// error handling code
}
}
は、それが復帰することによって抑制されていますか?おそらく代わりにvarを使用して結果をキャプチャしようとします。 –
ありがとうございます。投稿する前に試してみました。 Steveが提案したようにIEnumerableをToListに変更しました。 – mvc234