EFコアにも例外がスローされる方法がありますか、少なくともIQueryable
をSQLに変換できない場合はイベントを発生させる方法はありますか?
確かに。まず、これはpre EF Core(EF6.x)に存在しないクライアント評価と呼ばれるEFコアの概念です。これは、Client vs. Server Evaluationドキュメントのトピックで覆われており、は、クライアントの評価を無効にセクションでは、デフォルトの動作を説明し、それを変更することができます方法は次のとおりです。クライアントの評価が行われた場合
デフォルトでは、EFコアは警告をログに記録します。ログ出力の表示の詳細については、Loggingを参照してください。クライアントの評価が発生した場合や、何もしない場合に動作を変更することができます。これは、ASP.NETコアを使用している場合は、通常はDbContext.OnConfiguring
、またはStartup.cs
にコンテキストのオプションを設定するときに行われます。
後はRelationalEventId.QueryClientEvaluationWarning
ためDbContextOptionsBuilder
クラスのConfigureWarnings
方法を使用することによって達成されます。有効なアクションがあるLog
(デフォルト)、Ignore
とThrow
は(希望):
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
// ...
optionsBuilder.ConfigureWarnings(warnings =>
warnings.Throw(RelationalEventId.QueryClientEvaluationWarning));
}
参照[サーバー評価対クライアント](https://docs.microsoft.com/en-us/ef/core/querying/ client-eval) - **クライアント評価の無効化**ドキュメントのトピック - 説明と例私は追加できるものはないと思う。 –
@イワン、これを答えとして書いてください。正しいとマークします。それはまさに私が探しているものです!私が検索している間に見つけられなかったのは、アプリサーバーとデータベースサーバーをクライアントとサーバーの両方で考えるのではないと思うからです。 –