Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Common / CommandTrees / Aggregates.cs / 1305376 / Aggregates.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Data.Common; using System.Collections.Generic; using System.Data.Metadata.Edm; using System.Data.Common.CommandTrees.Internal; using System.Diagnostics; namespace System.Data.Common.CommandTrees { ////// Aggregates are pseudo-expressions. They look and feel like expressions, but /// are severely restricted in where they can appear - only in the aggregates clause /// of a group-by expression. /// [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Db")] public abstract class DbAggregate { private readonly DbExpressionList _args; private readonly TypeUsage _type; internal DbAggregate(TypeUsage resultType, DbExpressionList arguments) { Debug.Assert(resultType != null, "DbAggregate.ResultType cannot be null"); Debug.Assert(arguments != null, "DbAggregate.Arguments cannot be null"); Debug.Assert(arguments.Count == 1, "DbAggregate requires a single argument"); this._type = resultType; this._args = arguments; } ////// Gets the result type of this aggregate /// public TypeUsage ResultType { get { return _type; } } ////// Gets the list of expressions that define the arguments to the aggregate. /// public IListArguments { get { return _args; } } } /// /// The aggregate type that corresponds to exposing the collection of elements that comprise a group /// [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Db")] public sealed class DbGroupAggregate : DbAggregate { internal DbGroupAggregate(TypeUsage resultType, DbExpressionList arguments) : base(resultType, arguments) { } } ////// The aggregate type that corresponds to the invocation of an aggregate function. /// [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Db")] public sealed class DbFunctionAggregate : DbAggregate { private bool _distinct; EdmFunction _aggregateFunction; internal DbFunctionAggregate(TypeUsage resultType, DbExpressionList arguments, EdmFunction function, bool isDistinct) : base(resultType, arguments) { Debug.Assert(function != null, "DbFunctionAggregate.Function cannot be null"); _aggregateFunction = function; _distinct = isDistinct; } ////// Gets a value indicating whether the aggregate function is applied in a distinct fashion /// public bool Distinct { get { return _distinct; } } ////// Gets the method metadata that specifies the aggregate function to invoke. /// public EdmFunction Function { get { return _aggregateFunction; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Data.Common; using System.Collections.Generic; using System.Data.Metadata.Edm; using System.Data.Common.CommandTrees.Internal; using System.Diagnostics; namespace System.Data.Common.CommandTrees { ////// Aggregates are pseudo-expressions. They look and feel like expressions, but /// are severely restricted in where they can appear - only in the aggregates clause /// of a group-by expression. /// [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Db")] public abstract class DbAggregate { private readonly DbExpressionList _args; private readonly TypeUsage _type; internal DbAggregate(TypeUsage resultType, DbExpressionList arguments) { Debug.Assert(resultType != null, "DbAggregate.ResultType cannot be null"); Debug.Assert(arguments != null, "DbAggregate.Arguments cannot be null"); Debug.Assert(arguments.Count == 1, "DbAggregate requires a single argument"); this._type = resultType; this._args = arguments; } ////// Gets the result type of this aggregate /// public TypeUsage ResultType { get { return _type; } } ////// Gets the list of expressions that define the arguments to the aggregate. /// public IListArguments { get { return _args; } } } /// /// The aggregate type that corresponds to exposing the collection of elements that comprise a group /// [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Db")] public sealed class DbGroupAggregate : DbAggregate { internal DbGroupAggregate(TypeUsage resultType, DbExpressionList arguments) : base(resultType, arguments) { } } ////// The aggregate type that corresponds to the invocation of an aggregate function. /// [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Db")] public sealed class DbFunctionAggregate : DbAggregate { private bool _distinct; EdmFunction _aggregateFunction; internal DbFunctionAggregate(TypeUsage resultType, DbExpressionList arguments, EdmFunction function, bool isDistinct) : base(resultType, arguments) { Debug.Assert(function != null, "DbFunctionAggregate.Function cannot be null"); _aggregateFunction = function; _distinct = isDistinct; } ////// Gets a value indicating whether the aggregate function is applied in a distinct fashion /// public bool Distinct { get { return _distinct; } } ////// Gets the method metadata that specifies the aggregate function to invoke. /// public EdmFunction Function { get { return _aggregateFunction; } } } } // 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
- C14NUtil.cs
- XmlObjectSerializer.cs
- ByeMessageApril2005.cs
- KeyValueConfigurationCollection.cs
- BamlRecordWriter.cs
- ServiceContractGenerator.cs
- AudioFormatConverter.cs
- SqlColumnizer.cs
- coordinatorscratchpad.cs
- ExpressionEditorAttribute.cs
- MenuItemStyleCollectionEditor.cs
- MexHttpBindingCollectionElement.cs
- Graphics.cs
- PTConverter.cs
- CreateParams.cs
- HuffCodec.cs
- DetailsViewDeletedEventArgs.cs
- QueryIntervalOp.cs
- ConstraintStruct.cs
- PersonalizableAttribute.cs
- DoubleAnimationUsingPath.cs
- FixedHyperLink.cs
- Misc.cs
- OpenFileDialog.cs
- TreeView.cs
- ComEventsHelper.cs
- GPPOINT.cs
- Point3D.cs
- Itemizer.cs
- DomNameTable.cs
- InertiaExpansionBehavior.cs
- XmlDataLoader.cs
- ToolStripItemImageRenderEventArgs.cs
- FixedFlowMap.cs
- RecognizedWordUnit.cs
- HostedHttpTransportManager.cs
- Debugger.cs
- PropertyDescriptor.cs
- RSAPKCS1KeyExchangeFormatter.cs
- HostDesigntimeLicenseContext.cs
- ToolTip.cs
- ConnectorSelectionGlyph.cs
- Guid.cs
- ZipIOExtraFieldElement.cs
- ThreadAttributes.cs
- ClonableStack.cs
- ContextQuery.cs
- InternalControlCollection.cs
- StylusDevice.cs
- odbcmetadatafactory.cs
- ApplicationId.cs
- TimeoutValidationAttribute.cs
- FullTrustAssembliesSection.cs
- NonBatchDirectoryCompiler.cs
- WebReferencesBuildProvider.cs
- UInt64Storage.cs
- RootBrowserWindow.cs
- ControlTemplate.cs
- SelectManyQueryOperator.cs
- QilTypeChecker.cs
- ProviderBase.cs
- HTTPNotFoundHandler.cs
- DictionaryEntry.cs
- TaskHelper.cs
- BooleanProjectedSlot.cs
- IndexObject.cs
- AuthenticationModulesSection.cs
- TypeUsageBuilder.cs
- SessionStateUtil.cs
- BaseParser.cs
- _NtlmClient.cs
- LoginUtil.cs
- DesignerHost.cs
- ByteStreamGeometryContext.cs
- ServiceModelExtensionCollectionElement.cs
- DES.cs
- AxisAngleRotation3D.cs
- PartialClassGenerationTaskInternal.cs
- StoreItemCollection.cs
- ScriptRegistrationManager.cs
- WindowsButton.cs
- CustomError.cs
- ObjectViewQueryResultData.cs
- ItemContainerGenerator.cs
- MultiBindingExpression.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- ViewGenResults.cs
- CodeGenerator.cs
- DecoratedNameAttribute.cs
- XmlIncludeAttribute.cs
- ElementHost.cs
- DataPagerFieldCommandEventArgs.cs
- FontNamesConverter.cs
- XhtmlCssHandler.cs
- SingleConverter.cs
- ImageBrush.cs
- DateTimeFormatInfo.cs
- Vector3D.cs
- XmlNamespaceMapping.cs
- TargetException.cs