概要
Entity Framework Coreの進化により、Raw SQLクエリがカスタム結果マッピングがどのように処理されるかが変更されました。 この記事では、特にテーブルデータとフルテキスト検索クエリの結果を組み合わせて、さまざまなEFコアバージョンのソリューションに焦点を当てた場合のデータを取得するという課題について説明します。
ef Core 8以降
EF Core 8および後続のバージョンは、このプロセスを簡素化します。メソッドは、任意のタイプの返却を直接サポートするようになりました。これにより、キーレスエンティティタイプとカスタムクラスを使用してクエリ結果をマッピングできます。
SqlQuery
EF Core 3.0の場合、キーレスエンティティタイプはクリーンソリューションを提供します。
属性を使用して、または。
[Keyless]
HasNoKey()
[Keyless] public class SomeModel { ... } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<SomeModel>().HasNoKey(); }
を使用してクエリを実行します
FromSqlRaw
FromSql
var result = context.SomeModels.FromSqlRaw("YOUR SQL SCRIPT").ToList();
EF Core 2.1はクエリタイプを導入し、カスタムクラスをマッピングするための構造化されたアプローチを提供します。 プロパティを
に追加し、:DbQuery<T>
を使用します
DbContext
FromSql
public DbQuery<SomeModel> SomeModels { get; set; } var result = context.SomeModels.FromSql("YOUR SQL SCRIPT").ToList();
これらのメソッドは、エンティティフレームワークコアで生のSQLクエリを実行するときにカスタム結果マッピングの必要性に効果的に対処し、フルテキスト検索結果と結合されたデータセットを含むシナリオを含む柔軟なデータ検索を可能にします。 EFコアバージョンに最適なアプローチを選択してください。 を実際のSQLクエリに置き換えることを忘れないでください
以上がエンティティフレームワークコアのカスタム結果マッピングで生のSQLクエリを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。