1 //------------------------------------------------------------------------------
2 // <copyright file="CreateRefExpr.cs" company="Microsoft">
3 // Copyright (c) Microsoft Corporation. All rights reserved.
7 // @backupOwner Microsoft
8 //---------------------------------------------------------------------
10 namespace System.Data.Common.EntitySql.AST
13 using System.Globalization;
14 using System.Collections;
15 using System.Collections.Generic;
18 /// Represents CREATEREF(entitySet, keys) expression.
20 internal sealed class CreateRefExpr : Node
22 private readonly Node _entitySet;
23 private readonly Node _keys;
24 private readonly Node _typeIdentifier;
27 /// Initializes CreateRefExpr.
29 /// <param name="entitySet">expression representing the entity set</param>
30 internal CreateRefExpr(Node entitySet, Node keys) : this(entitySet, keys, null)
34 /// Initializes CreateRefExpr.
36 internal CreateRefExpr(Node entitySet, Node keys, Node typeIdentifier)
38 _entitySet = entitySet;
40 _typeIdentifier = typeIdentifier;
44 /// Returns the expression for the entity set.
46 internal Node EntitySet
48 get { return _entitySet; }
52 /// Returns the expression for the keys.
60 /// Gets optional typeidentifier. May be null.
62 internal Node TypeIdentifier
64 get { return _typeIdentifier; }
69 /// Represents KEY(expr) expression.
71 internal class KeyExpr : Node
73 private readonly Node _argExpr;
76 /// Initializes KEY expression.
78 internal KeyExpr(Node argExpr)
84 /// Returns KEY argument expression.
88 get { return _argExpr; }