439 lines
15 KiB
Plaintext
439 lines
15 KiB
Plaintext
================================================================================
|
|
Query from select
|
|
================================================================================
|
|
|
|
var x = from a in source select a.B;
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(compilation_unit
|
|
(global_statement
|
|
(local_declaration_statement
|
|
(variable_declaration
|
|
type: (implicit_type)
|
|
(variable_declarator
|
|
name: (identifier)
|
|
(equals_value_clause
|
|
(query_expression
|
|
(from_clause
|
|
name: (identifier)
|
|
(identifier))
|
|
(select_clause
|
|
(member_access_expression
|
|
expression: (identifier)
|
|
name: (identifier))))))))))
|
|
|
|
================================================================================
|
|
Query from select with operator
|
|
================================================================================
|
|
|
|
var x = from a in source select a * 2;
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(compilation_unit
|
|
(global_statement
|
|
(local_declaration_statement
|
|
(variable_declaration
|
|
type: (implicit_type)
|
|
(variable_declarator
|
|
name: (identifier)
|
|
(equals_value_clause
|
|
(query_expression
|
|
(from_clause
|
|
name: (identifier)
|
|
(identifier))
|
|
(select_clause
|
|
(binary_expression
|
|
left: (identifier)
|
|
right: (integer_literal))))))))))
|
|
|
|
================================================================================
|
|
Query from select with method call
|
|
================================================================================
|
|
|
|
var x = from a in source select a.B();
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(compilation_unit
|
|
(global_statement
|
|
(local_declaration_statement
|
|
(variable_declaration
|
|
type: (implicit_type)
|
|
(variable_declarator
|
|
name: (identifier)
|
|
(equals_value_clause
|
|
(query_expression
|
|
(from_clause
|
|
name: (identifier)
|
|
(identifier))
|
|
(select_clause
|
|
(invocation_expression
|
|
function: (member_access_expression
|
|
expression: (identifier)
|
|
name: (identifier))
|
|
arguments: (argument_list))))))))))
|
|
|
|
================================================================================
|
|
Query from select with conditional operator
|
|
================================================================================
|
|
|
|
var x = from a in source select a ? 0 : 1;
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(compilation_unit
|
|
(global_statement
|
|
(local_declaration_statement
|
|
(variable_declaration
|
|
type: (implicit_type)
|
|
(variable_declarator
|
|
name: (identifier)
|
|
(equals_value_clause
|
|
(query_expression
|
|
(from_clause
|
|
name: (identifier)
|
|
(identifier))
|
|
(select_clause
|
|
(conditional_expression
|
|
condition: (identifier)
|
|
consequence: (integer_literal)
|
|
alternative: (integer_literal))))))))))
|
|
|
|
================================================================================
|
|
Query from select with assignment
|
|
================================================================================
|
|
|
|
var x = from a in source select somevar = a;
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(compilation_unit
|
|
(global_statement
|
|
(local_declaration_statement
|
|
(variable_declaration
|
|
type: (implicit_type)
|
|
(variable_declarator
|
|
name: (identifier)
|
|
(equals_value_clause
|
|
(query_expression
|
|
(from_clause
|
|
name: (identifier)
|
|
(identifier))
|
|
(select_clause
|
|
(assignment_expression
|
|
left: (identifier)
|
|
(assignment_operator)
|
|
right: (identifier))))))))))
|
|
|
|
================================================================================
|
|
Query from select projection
|
|
================================================================================
|
|
|
|
var x = from a in source select new { Name = a.B };
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(compilation_unit
|
|
(global_statement
|
|
(local_declaration_statement
|
|
(variable_declaration
|
|
type: (implicit_type)
|
|
(variable_declarator
|
|
name: (identifier)
|
|
(equals_value_clause
|
|
(query_expression
|
|
(from_clause
|
|
name: (identifier)
|
|
(identifier))
|
|
(select_clause
|
|
(anonymous_object_creation_expression
|
|
(name_equals
|
|
(identifier))
|
|
(member_access_expression
|
|
expression: (identifier)
|
|
name: (identifier)))))))))))
|
|
|
|
================================================================================
|
|
Query from select with where
|
|
================================================================================
|
|
|
|
var x = from a in source
|
|
where a.B == "A"
|
|
select a;
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(compilation_unit
|
|
(global_statement
|
|
(local_declaration_statement
|
|
(variable_declaration
|
|
type: (implicit_type)
|
|
(variable_declarator
|
|
name: (identifier)
|
|
(equals_value_clause
|
|
(query_expression
|
|
(from_clause
|
|
name: (identifier)
|
|
(identifier))
|
|
(where_clause
|
|
(binary_expression
|
|
left: (member_access_expression
|
|
expression: (identifier)
|
|
name: (identifier))
|
|
right: (string_literal
|
|
(string_literal_fragment))))
|
|
(select_clause
|
|
(identifier)))))))))
|
|
|
|
================================================================================
|
|
Query from select with where and projection
|
|
================================================================================
|
|
|
|
var x = from a in source
|
|
where a.B == "A" && a.C == "D"
|
|
select new { Name = a.B };
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(compilation_unit
|
|
(global_statement
|
|
(local_declaration_statement
|
|
(variable_declaration
|
|
type: (implicit_type)
|
|
(variable_declarator
|
|
name: (identifier)
|
|
(equals_value_clause
|
|
(query_expression
|
|
(from_clause
|
|
name: (identifier)
|
|
(identifier))
|
|
(where_clause
|
|
(binary_expression
|
|
left: (binary_expression
|
|
left: (member_access_expression
|
|
expression: (identifier)
|
|
name: (identifier))
|
|
right: (string_literal
|
|
(string_literal_fragment)))
|
|
right: (binary_expression
|
|
left: (member_access_expression
|
|
expression: (identifier)
|
|
name: (identifier))
|
|
right: (string_literal
|
|
(string_literal_fragment)))))
|
|
(select_clause
|
|
(anonymous_object_creation_expression
|
|
(name_equals
|
|
(identifier))
|
|
(member_access_expression
|
|
expression: (identifier)
|
|
name: (identifier)))))))))))
|
|
|
|
================================================================================
|
|
Query from select with orderby
|
|
================================================================================
|
|
|
|
var x = from a in source
|
|
orderby a.A descending
|
|
orderby a.C ascending
|
|
orderby 1
|
|
select a;
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(compilation_unit
|
|
(global_statement
|
|
(local_declaration_statement
|
|
(variable_declaration
|
|
type: (implicit_type)
|
|
(variable_declarator
|
|
name: (identifier)
|
|
(equals_value_clause
|
|
(query_expression
|
|
(from_clause
|
|
name: (identifier)
|
|
(identifier))
|
|
(order_by_clause
|
|
(member_access_expression
|
|
expression: (identifier)
|
|
name: (identifier)))
|
|
(order_by_clause
|
|
(member_access_expression
|
|
expression: (identifier)
|
|
name: (identifier)))
|
|
(order_by_clause
|
|
(integer_literal))
|
|
(select_clause
|
|
(identifier)))))))))
|
|
|
|
================================================================================
|
|
Query from select with let
|
|
================================================================================
|
|
|
|
var x = from a in source
|
|
let z = new { a.A, a.B }
|
|
select z;
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(compilation_unit
|
|
(global_statement
|
|
(local_declaration_statement
|
|
(variable_declaration
|
|
type: (implicit_type)
|
|
(variable_declarator
|
|
name: (identifier)
|
|
(equals_value_clause
|
|
(query_expression
|
|
(from_clause
|
|
name: (identifier)
|
|
(identifier))
|
|
(let_clause
|
|
(identifier)
|
|
(anonymous_object_creation_expression
|
|
(member_access_expression
|
|
expression: (identifier)
|
|
name: (identifier))
|
|
(member_access_expression
|
|
expression: (identifier)
|
|
name: (identifier))))
|
|
(select_clause
|
|
(identifier)))))))))
|
|
|
|
================================================================================
|
|
Query from select with join
|
|
================================================================================
|
|
|
|
var x = from a in sourceA
|
|
join b in sourceB on a.FK equals b.PK
|
|
select new { A.A, B.B };
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(compilation_unit
|
|
(global_statement
|
|
(local_declaration_statement
|
|
(variable_declaration
|
|
type: (implicit_type)
|
|
(variable_declarator
|
|
name: (identifier)
|
|
(equals_value_clause
|
|
(query_expression
|
|
(from_clause
|
|
name: (identifier)
|
|
(identifier))
|
|
(join_clause
|
|
name: (identifier)
|
|
(identifier)
|
|
(member_access_expression
|
|
expression: (identifier)
|
|
name: (identifier))
|
|
(member_access_expression
|
|
expression: (identifier)
|
|
name: (identifier)))
|
|
(select_clause
|
|
(anonymous_object_creation_expression
|
|
(member_access_expression
|
|
expression: (identifier)
|
|
name: (identifier))
|
|
(member_access_expression
|
|
expression: (identifier)
|
|
name: (identifier)))))))))))
|
|
|
|
================================================================================
|
|
Query from select with multiple from
|
|
================================================================================
|
|
|
|
var x = from a in sourceA
|
|
from b in sourceB
|
|
where a.FK == b.FK
|
|
select new { A.A, B.B };
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(compilation_unit
|
|
(global_statement
|
|
(local_declaration_statement
|
|
(variable_declaration
|
|
type: (implicit_type)
|
|
(variable_declarator
|
|
name: (identifier)
|
|
(equals_value_clause
|
|
(query_expression
|
|
(from_clause
|
|
name: (identifier)
|
|
(identifier))
|
|
(from_clause
|
|
name: (identifier)
|
|
(identifier))
|
|
(where_clause
|
|
(binary_expression
|
|
left: (member_access_expression
|
|
expression: (identifier)
|
|
name: (identifier))
|
|
right: (member_access_expression
|
|
expression: (identifier)
|
|
name: (identifier))))
|
|
(select_clause
|
|
(anonymous_object_creation_expression
|
|
(member_access_expression
|
|
expression: (identifier)
|
|
name: (identifier))
|
|
(member_access_expression
|
|
expression: (identifier)
|
|
name: (identifier)))))))))))
|
|
|
|
================================================================================
|
|
Query from select with group by & continuation
|
|
================================================================================
|
|
|
|
var x = from a in sourceA
|
|
group a by a.Country into g
|
|
select new { Country = g.Key, Population = g.Sum(p => p.Population) };
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
(compilation_unit
|
|
(global_statement
|
|
(local_declaration_statement
|
|
(variable_declaration
|
|
type: (implicit_type)
|
|
(variable_declarator
|
|
name: (identifier)
|
|
(equals_value_clause
|
|
(query_expression
|
|
(from_clause
|
|
name: (identifier)
|
|
(identifier))
|
|
(group_clause
|
|
(identifier)
|
|
(member_access_expression
|
|
expression: (identifier)
|
|
name: (identifier)))
|
|
(query_continuation
|
|
name: (identifier)
|
|
(select_clause
|
|
(anonymous_object_creation_expression
|
|
(name_equals
|
|
(identifier))
|
|
(member_access_expression
|
|
expression: (identifier)
|
|
name: (identifier))
|
|
(name_equals
|
|
(identifier))
|
|
(invocation_expression
|
|
function: (member_access_expression
|
|
expression: (identifier)
|
|
name: (identifier))
|
|
arguments: (argument_list
|
|
(argument
|
|
(lambda_expression
|
|
parameters: (implicit_parameter_list
|
|
(parameter
|
|
name: (identifier)))
|
|
body: (member_access_expression
|
|
expression: (identifier)
|
|
name: (identifier))))))))))))))))
|