ひっそりと生きるプログラマのブログ

日頃気になった事なりを書き留めるブログです。関心ごとは多くもう少し更新頻度を上げたいところです。

【Entity Framework】LINQ と Oracle の関数でマップされていないものを利用する(2)※Select句で利用する。

saboten-sakura.hatenablog.com

投稿のちょっとした続きです。
前回は Where句 に独自関数を追加しましたが、
今回は Select句 で Oracle の関数を呼んでみます。

var context = new SampleDbContext();
var items = (from m in context.SampleTables 
             where 
             m.SampleNumber.Sqrt() > 3 && 
             m.SampleNumber.Sqrt() < 7 
             select new { test1 = m.SampleNumber, test2 = m.SampleNumber.Sqrt() });
foreach (var item in items)
{
    // SampleNumber の表示と、 SampleNumber の平方根を表示。
    Console.WriteLine($"{item.test1} - {item.test2}");
}

で、出力した SQL がこちら。

SELECT "s"."ID", "s"."SAMPLENUMBER", "SQRT"("s"."SAMPLENUMBER") "test2"
FROM "SAMPLETABLE" "s"
WHERE (("SQRT"("s"."SAMPLENUMBER") > 3) AND ("SQRT"("s"."SAMPLENUMBER") < 7))