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

回答1件
あなたの回答
tips
プレビュー