.NET Core の Entity Framework で直接SQL文を実行する

.NET Coreでは基本 Entity Framework を使用するので直接SQL文を実行する事はありませんが、たまにSQL文を実行したい時があります。 Entity Frameworkを使用するので簡単なSQL文を実行したいだけの時でも「モデル」と「コンテキスト」は定義しておく必要があります。

引用 : https://docs.microsoft.com/ja-jp/aspnet/core/data/ef-mvc/advanced?view=aspnetcore-2.0#raw-sql-queries

● SQL文を直接実行(エンティティを返す)

(DBコンテキスト : _context)(テーブル:MYTABLE) を操作します

string sql = "SELECT * FROM MYTABLE";
var result = _context.Mytable.FromSql(sql);

パラメータを渡したい場合は以下のように記述します

using System.Data.SqlClient;
var sp = new SqlParameter("nm", "tanaka");
var result = this.db.MYTABLE
    .FromSql("SELECT TOP 1 * FROM MYTABLE WHERE NAME = @nm", sp);

● SQL文を直接実行

非クエリ コマンドに対して Database.ExecuteSqlCommand を使用します。

引用 : https://docs.microsoft.com/ja-jp/aspnet/core/data/ef-mvc/advanced?view=aspnetcore-2.0#raw-sql-queries

No.1231
06/25 13:34

edit