Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Common / CommandTrees / ExpressionBindings.cs / 1305376 / ExpressionBindings.cs
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....]
// @backupOwner [....]
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Data.Common;
using System.Data.Common.Utils;
using System.Data.Metadata.Edm;
using System.Data.Common.CommandTrees.Internal;
using System.Data.Common.CommandTrees.ExpressionBuilder;
namespace System.Data.Common.CommandTrees
{
///
/// Describes a binding for an expression. Conceptually similar to a foreach loop
/// in C#. The DbExpression property defines the collection being iterated over,
/// while the Var property provides a means to reference the current element
/// of the collection during the iteration. DbExpressionBinding is used to describe the set arguments
/// to relational expressions such as ,
/// and .
///
///
///
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Db")]
public sealed class DbExpressionBinding
{
private readonly DbExpression _expr;
private readonly DbVariableReferenceExpression _varRef;
internal DbExpressionBinding(DbExpression input, DbVariableReferenceExpression varRef)
{
Debug.Assert(input != null, "DbExpressionBinding input cannot be null");
Debug.Assert(varRef != null, "DbExpressionBinding variable cannot be null");
_expr = input;
_varRef = varRef;
}
///
/// Gets the that defines the input set.
///
public DbExpression Expression { get { return _expr; } }
///
/// Gets the name assigned to the element variable.
///
public string VariableName { get { return _varRef.VariableName; } }
///
/// Gets the type metadata of the element variable.
///
public TypeUsage VariableType { get { return _varRef.ResultType; } }
///
/// Gets the that references the element variable.
///
public DbVariableReferenceExpression Variable { get { return _varRef;} }
}
///
/// Defines the binding for the input set to a .
/// In addition to the properties of , DbGroupExpressionBinding
/// also provides access to the group element via the variable reference
/// and to the group aggregate via the property.
///
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Db")]
public sealed class DbGroupExpressionBinding
{
private /*readonly*/ DbExpression _expr;
private readonly DbVariableReferenceExpression _varRef;
private readonly DbVariableReferenceExpression _groupVarRef;
private DbGroupAggregate _groupAggregate;
internal DbGroupExpressionBinding(DbExpression input, DbVariableReferenceExpression inputRef, DbVariableReferenceExpression groupRef)
{
_expr = input;
_varRef = inputRef;
_groupVarRef = groupRef;
}
///
/// Gets the that defines the input set.
///
public DbExpression Expression { get { return _expr; } }
///
/// Gets the name assigned to the element variable.
///
public string VariableName { get { return _varRef.VariableName; } }
///
/// Gets the type metadata of the element variable.
///
public TypeUsage VariableType { get { return _varRef.ResultType; } }
///
/// Gets the DbVariableReferenceExpression that references the element variable.
///
public DbVariableReferenceExpression Variable { get { return _varRef; } }
///
/// Gets the name assigned to the group element variable.
///
public string GroupVariableName { get { return _groupVarRef.VariableName; } }
///
/// Gets the type metadata of the group element variable.
///
public TypeUsage GroupVariableType { get { return _groupVarRef.ResultType; } }
///
/// Gets the DbVariableReferenceExpression that references the group element variable.
///
public DbVariableReferenceExpression GroupVariable { get { return _groupVarRef; } }
///
/// Gets the DbGroupAggregate that represents the collection of elements of the group.
///
public DbGroupAggregate GroupAggregate
{
get
{
if (_groupAggregate == null)
{
_groupAggregate = DbExpressionBuilder.GroupAggregate(this.GroupVariable);
}
return _groupAggregate;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TextEncodedRawTextWriter.cs
- ServiceDescriptionReflector.cs
- TrustLevel.cs
- VirtualizedItemPattern.cs
- Queue.cs
- CqlBlock.cs
- ChtmlImageAdapter.cs
- VirtualizingStackPanel.cs
- X509Logo.cs
- ValidationError.cs
- Identifier.cs
- EventBuilder.cs
- MoveSizeWinEventHandler.cs
- Message.cs
- ObjectItemLoadingSessionData.cs
- MetadataItemCollectionFactory.cs
- WebPartVerbsEventArgs.cs
- StringConcat.cs
- DrawingContextDrawingContextWalker.cs
- Sql8ConformanceChecker.cs
- SafeNativeMethodsMilCoreApi.cs
- CompilationLock.cs
- AsyncCompletedEventArgs.cs
- TextSimpleMarkerProperties.cs
- CallContext.cs
- OdbcParameterCollection.cs
- UICuesEvent.cs
- FileVersionInfo.cs
- ProxyWebPartManager.cs
- IfAction.cs
- Path.cs
- NotifyIcon.cs
- NegatedConstant.cs
- SvcFileManager.cs
- Axis.cs
- SQLBoolean.cs
- PanelStyle.cs
- RoleManagerEventArgs.cs
- AliasGenerator.cs
- FragmentNavigationEventArgs.cs
- FileRegion.cs
- XamlToRtfWriter.cs
- SpAudioStreamWrapper.cs
- SqlRecordBuffer.cs
- CodeDomDesignerLoader.cs
- ListViewInsertionMark.cs
- GeneralTransform3DGroup.cs
- control.ime.cs
- CheckBox.cs
- XmlSchemaObjectTable.cs
- ColorMap.cs
- SqlCommand.cs
- ConstructorArgumentAttribute.cs
- LogRestartAreaEnumerator.cs
- Route.cs
- RequestTimeoutManager.cs
- InkSerializer.cs
- WriteableOnDemandPackagePart.cs
- XmlMemberMapping.cs
- QuaternionAnimationBase.cs
- ReferentialConstraint.cs
- RequestQueue.cs
- RangeContentEnumerator.cs
- Matrix.cs
- MergablePropertyAttribute.cs
- Viewport3DAutomationPeer.cs
- MouseOverProperty.cs
- UserMapPath.cs
- Material.cs
- PackagingUtilities.cs
- AppSettingsExpressionBuilder.cs
- ContractCodeDomInfo.cs
- AttributedMetaModel.cs
- PasswordTextContainer.cs
- ColorDialog.cs
- PreservationFileWriter.cs
- CapabilitiesRule.cs
- FormsAuthentication.cs
- CodeThrowExceptionStatement.cs
- ListViewGroupCollectionEditor.cs
- CustomPopupPlacement.cs
- PerformanceCounterPermissionEntry.cs
- Environment.cs
- OdbcStatementHandle.cs
- SpecularMaterial.cs
- ToolStripDropTargetManager.cs
- LongValidatorAttribute.cs
- WorkflowMarkupSerializer.cs
- Ipv6Element.cs
- ConnectionManagementElementCollection.cs
- DataGridViewSortCompareEventArgs.cs
- DataControlPagerLinkButton.cs
- DecimalConstantAttribute.cs
- StaticFileHandler.cs
- CompiledELinqQueryState.cs
- Lock.cs
- QueryAccessibilityHelpEvent.cs
- EpmContentSerializerBase.cs
- PrintPageEvent.cs
- NonVisualControlAttribute.cs