.NET

Entity Framework Core 応用

Raw SQL、stored procedures、トランザクション、AsNoTracking、AsSplitQuery、query tags、interceptors、パフォーマンスチューニング

25 面接問題·
Mid-Level
1

EF Core でエンティティを取得するために raw SQL クエリを実行するにはどうすればよいですか?

回答

FromSql() または FromSqlRaw() メソッドを使うと、DbContext によって追跡されるエンティティを返しながら raw SQL クエリを実行できます。これは stored procedures やテーブル値関数の呼び出しなど、LINQ ではクエリを直接表現できないシナリオで役立ちます。その後、結果を LINQ と組み合わせてフィルターを追加したり、リレーションを含めたりできます。

2

EF Core における FromSqlRaw() と ExecuteSqlRaw() の違いは何ですか?

回答

FromSqlRaw() は追跡対象のエンティティを返す SELECT クエリの実行に使用され、LINQ との組み合わせが可能です。ExecuteSqlRaw() は非クエリコマンド(INSERT、UPDATE、DELETE)の実行に使用され、影響を受けた行数を返します。FromSqlRaw() は DbSet に適用され、ExecuteSqlRaw() は Database に適用されます。この区別により、型安全性とモデルの整合性が保証されます。

3

EF Core でエンティティを返す stored procedure を呼び出すにはどうすればよいですか?

回答

stored procedure を呼び出して結果をエンティティにマッピングするには、FromSqlRaw() または Database.SqlQuery<T>() を使用します。呼び出しの後に AsEnumerable() を追加することが重要で、これにより EF Core が stored procedure の結果に対して構成を試みて SQL 構文エラーを引き起こすのを防ぎます。パラメーターは SQL インジェクションを防ぐために @p0、@p1 構文を使って渡せます。

4

EF Core における AsNoTracking() の役割は何ですか?

5

AsNoTracking() の代わりに AsNoTrackingWithIdentityResolution() を使うのはどのような場合ですか?

+22 面接問題

次の面接に向けて.NETをマスター

すべての問題、flashcards、技術テスト、コードレビュー演習、面接シミュレーターにアクセス。

無料で始める