###知りたいこと
.NetフレームワークのEntity flameworkでは、例えば
C#
var db = new MyAppDbContext(); foreach (var book in db.Books.Where(x => x.Name.StartsWith("hoge"))) { ... }
などと書くと、
SQL
SELECT .... FROM [dbo].[Books] AS [Extent1] WHERE [Extent1].[Name] LIKE 'hoge%'
と、Whereに含めたブール式がSQLのWHERE句に変換されて出力されてきます。
この変換は、ブール式の意味を解読して行っているもの思いますが、その解読はどのような手法によるものでしょうか?
コードの文字列化や、ブール式をパース(解析)するような手法も見当たらないですし、不思議で仕方ありません・・・
使用する大まかな手法・機能・概念等でも結構ですので、ご教示いただければありがたく思います。
試したこと
Githubのソースコードは見に行ってみましたが、該当箇所が分からず断念しました・・・
まだ回答がついていません
会員登録して回答してみよう