Entity Framework 4.3 Code First 時点では、生成されるクエリに手を入れることはできません。がいくつかの方法である程度自由にクエリを実行できます。
Database.Connection プロパティ を使用する
EntityFramework でもなんでもなくなってしまいますが、DbConnectionを使用する方法があります。DbContext.Database.Connection プロパティから、DbConnection オブジェクトを取得できます。DbConnection を使用すれば任意のクエリを実行できてしまいます。
Database.SqlQuery メソッドを使用する
DbContext.Database.SqlQuery メソッドを使用して、SELECTクエリを実行できます。SqlQueryを使用する場合は、抽出結果が型パラメータまたは引数で指定したTypeにマッピングできる必要があります。SqlQuery では任意のクラスのインスタンスを作成でき、Change Tracking の対象になりません。SqlQuery はパラメタ化されたクエリも実行できます。詳細はDatabase.SqlQueryを使用して非エンティティクラスを作成するを参照してください。
Database.ExequteSqlCommand メソッドを使用する
DbContext.Database.ExequteSqlCommandを使用するとDML/DDL クエリを実行できます。ストアドやINSERT,UPDATE,DELETEコマンドを実行できます。ExecuteSqlCommandもパラメタ化されたクエリを実行できます。
さんのコメント: さんのコメント: