質問: query.FromSql($"SELECT * FROM {tableName} WHERE RowVersion > @p0", new[] { lastRowVersion }); } ``` ドキュメントによると、 `FromSql`は`FromSql`に置き換えられています。これは、 `FromSqlRaw`では機能し`DbSet`が、 `IQueryable`では機能しません。 EF Core 3.0でこれをどのように実現できるかについてのヒントはありますか?
回答: ef core 3.0のdocからそれを取得する方法はできません。 EF Core 3.0より前のバージョンでは、FromSqlメソッドはクエリの任意の場所で指定できました。 **新しい行動** EF Core 3.0以降、新しいFromSqlRawおよびFromSqlInterpolatedメソッド(FromSqlに置き換わる)は、クエリのルートでのみ、つまりDbSet <>で直接指定できます。他の場所で指定しようとすると、コンパイルエラーが発生します。 **なぜ** DbSet以外の場所にFromSqlを指定しても、追加の意味や追加の値はなく、特定のシナリオではあいまいさを引き起こす可能性があります。 **緩和** FromSql呼び出しは、適用されるDbSetに直接移動する必要があります。