92 lines
2.4 KiB
C#
92 lines
2.4 KiB
C#
//------------------------------------------------------------------------------
|
|
// <copyright file="CreateRefExpr.cs" company="Microsoft">
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// </copyright>
|
|
//
|
|
// @owner [....]
|
|
// @backupOwner [....]
|
|
//---------------------------------------------------------------------
|
|
|
|
namespace System.Data.Common.EntitySql.AST
|
|
{
|
|
using System;
|
|
using System.Globalization;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
|
|
/// <summary>
|
|
/// Represents CREATEREF(entitySet, keys) expression.
|
|
/// </summary>
|
|
internal sealed class CreateRefExpr : Node
|
|
{
|
|
private readonly Node _entitySet;
|
|
private readonly Node _keys;
|
|
private readonly Node _typeIdentifier;
|
|
|
|
/// <summary>
|
|
/// Initializes CreateRefExpr.
|
|
/// </summary>
|
|
/// <param name="entitySet">expression representing the entity set</param>
|
|
internal CreateRefExpr(Node entitySet, Node keys) : this(entitySet, keys, null)
|
|
{ }
|
|
|
|
/// <summary>
|
|
/// Initializes CreateRefExpr.
|
|
/// </summary>
|
|
internal CreateRefExpr(Node entitySet, Node keys, Node typeIdentifier)
|
|
{
|
|
_entitySet = entitySet;
|
|
_keys = keys;
|
|
_typeIdentifier = typeIdentifier;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Returns the expression for the entity set.
|
|
/// </summary>
|
|
internal Node EntitySet
|
|
{
|
|
get { return _entitySet; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Returns the expression for the keys.
|
|
/// </summary>
|
|
internal Node Keys
|
|
{
|
|
get { return _keys; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets optional typeidentifier. May be null.
|
|
/// </summary>
|
|
internal Node TypeIdentifier
|
|
{
|
|
get { return _typeIdentifier; }
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Represents KEY(expr) expression.
|
|
/// </summary>
|
|
internal class KeyExpr : Node
|
|
{
|
|
private readonly Node _argExpr;
|
|
|
|
/// <summary>
|
|
/// Initializes KEY expression.
|
|
/// </summary>
|
|
internal KeyExpr(Node argExpr)
|
|
{
|
|
_argExpr = argExpr;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Returns KEY argument expression.
|
|
/// </summary>
|
|
internal Node ArgExpr
|
|
{
|
|
get { return _argExpr; }
|
|
}
|
|
}
|
|
}
|