Entity Framework でSQLを実行する
今回も参考サイトとあまり変わらないのですが、Entity FrameworkでSQLを実行する方法を調べてみました。
結果を入れるクラスとして、以下を用意します。
public class Book { public int ID { get; set; } public string Title { get; set; } public string Author { get; set; } }
DB接続周りのクラスを用意します。
public class ShelfContext : DbContext { public ShelfContext() {} public DbSet<Book> Books { get; set; } }
SQLを実行して、結果を得ます。
// idはint型の引数で渡される想定 using (var db = new ShelfContext()) { string query = @"SELECT ID, Title, Author FROM Books WHERE ID = @ID"; var result = db.Database.SqlQuery<Book>(query, new SqlParameter("@ID", id)); var book = result.First(); }
逐語的文字列と、名前付きパラメータを使用すると結構見やすく書くことが出来ます。
SqlQueryメソッドは、SELECT文用らしいので、UPDATE/INSERT/DELETE文には、ExecuteSqlCommandメソッドを使うようです。
あんまり使わなさそうな機能ですが。ADO.NETをそのまま使用したアプリケーションの書き換えでは役に立つのかもしれません。
参考サイト