Entity Framework 4 では Native SQL が実行可能
今日はEF4の新機能をご紹介しましょう。
EFはデータソースを抽象化できるのでビジネスロジックを変更することなくデータソースの切り替えが可能・・・・・・・・・・・・・・・
なのですが、複雑なシステムでは、どうしてもDB固有の操作が必要になるケースがあるかもしれません。そこで Native SQL を実行するための関数がObjectContextに追加されました。
ExecuteStoreCommand と ExecuteStoreQueryというコマンドです。
(EFを使っている意味合いが薄れてしまうので、安易に利用しないで使いどころを見極めてください。できるだけ使わなくて済むようにするのがベストです)
構文
C#
|
C#
|
ExecuteStoreCommand メソッド使ってみましょう
このコマンドはDBに対してNativeのUpdate、Delete、Insert、ストアドプロシージャなどを実行するために利用します。
戻り値は影響を受けた行数になります。使い方は非常にシンプルですね。
SchoolEntities db = new SchoolEntities(); int count = db.ExecuteStoreCommand("Update Schools set Name = 'Saga' Where Id = 1"); |
ExecuteStoreQuery<T> メソッド使ってみましょう
このコマンドはDBに対してNative のQueryを実行するのに利用します。
IEnumerable<School> schools = db.ExecuteStoreQuery<School>("SELECT * FROM Schools"); foreach (var s in schools) { Console.WriteLine(s.Name); } |