/mcs/class/referencesource/System.Data.Linq/SqlClient/Common/Expressions.cs
C# | 60 lines | 53 code | 6 blank | 1 comment | 0 complexity | e8730387f7d475b094df6502dacbeb0e MD5 | raw file
Possible License(s): GPL-2.0, CC-BY-SA-3.0, LGPL-2.0, MPL-2.0-no-copyleft-exception, LGPL-2.1, Unlicense, Apache-2.0
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Data.SqlClient;
- using System.Linq.Expressions;
- using System.Linq;
- using System.Reflection;
- using System.Text;
- using System.Data.Linq;
- namespace System.Data.Linq.SqlClient {
- // SQL Client extensions to ExpressionType
- internal enum InternalExpressionType {
- Known = 2000,
- LinkedTable = 2001
- }
- abstract internal class InternalExpression : Expression {
- #pragma warning disable 618 // Disable the 'obsolete' warning.
- internal InternalExpression(InternalExpressionType nt, Type type)
- : base ((ExpressionType)nt, type) {
- }
- #pragma warning restore 618
- internal static KnownExpression Known(SqlExpression expr) {
- return new KnownExpression(expr, expr.ClrType);
- }
- internal static KnownExpression Known(SqlNode node, Type type) {
- return new KnownExpression(node, type);
- }
- }
- internal sealed class KnownExpression : InternalExpression {
- SqlNode node;
- internal KnownExpression(SqlNode node, Type type)
- : base(InternalExpressionType.Known, type) {
- this.node = node;
- }
- internal SqlNode Node {
- get { return this.node; }
- }
- }
- internal sealed class LinkedTableExpression : InternalExpression {
- private SqlLink link;
- private ITable table;
- internal LinkedTableExpression(SqlLink link, ITable table, Type type)
- : base(InternalExpressionType.LinkedTable, type) {
- this.link = link;
- this.table = table;
- }
- internal SqlLink Link {
- get {return this.link;}
- }
- internal ITable Table {
- get {return this.table;}
- }
- }
- }