私はいくつかのEFの例を見て、エンティティまたはEntitySQLに対してLINQを実行するときに「クエリプロジェクション」が正確に何に相当するかを解読しようとしています。クエリ結果がフィルタリングされて匿名タイプに投影されるときだと思いますが、100%確実ではありません。
誰かがこれを定義して、その例を使用する小さなL2Eクエリを提供できますか?
私はいくつかのEFの例を見て、エンティティまたはEntitySQLに対してLINQを実行するときに「クエリプロジェクション」が正確に何に相当するかを解読しようとしています。クエリ結果がフィルタリングされて匿名タイプに投影されるときだと思いますが、100%確実ではありません。
誰かがこれを定義して、その例を使用する小さなL2Eクエリを提供できますか?
射影とは、クエリの結果が、クエリされたタイプとは異なるタイプに出力される場合です。 別の記事はそれを次のように定義しました:クエリの結果を変換するプロセス
投影は匿名タイプにすることもできますが、具体的なタイプにすることもできます。SQLの世界から来た場合、それはSELECT
句にリストされている列に似ています。
オブジェクトのサブセットを具体的なタイプに選択する例:
ParentObj.Select(x=> new ParentSlim { ParentID = x.ParentID, Name = x.Name } );
。
オブジェクトを3番目の匿名タイプにマージする例:
注:select new
一部は投影です。
from P in ParentObj.AsQueryable()
join C in ChildObj.AsQueryable() on P.ParentID == C.ParentID
select new { // <-- look ma, i'm projecting!
ParentID = P.ParentID,
Name = P.Name,
SubName = C.Name
RandomDate = DateTime.UtcNow()
}