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
- ConfigurationException.cs
- ListViewCancelEventArgs.cs
- StartUpEventArgs.cs
- EraserBehavior.cs
- MoveSizeWinEventHandler.cs
- RenderContext.cs
- BasicDesignerLoader.cs
- ApplicationFileParser.cs
- StringKeyFrameCollection.cs
- ComplexBindingPropertiesAttribute.cs
- HttpModuleCollection.cs
- SequenceDesignerAccessibleObject.cs
- ApplicationTrust.cs
- MergeFailedEvent.cs
- TreeIterators.cs
- CounterCreationDataCollection.cs
- Quaternion.cs
- WebConfigurationHost.cs
- FieldNameLookup.cs
- XmlLinkedNode.cs
- ASCIIEncoding.cs
- ProcessModelInfo.cs
- SystemBrushes.cs
- oledbconnectionstring.cs
- ByteStack.cs
- ObjectManager.cs
- HttpDebugHandler.cs
- DataControlReference.cs
- SmiRecordBuffer.cs
- DetailsView.cs
- InternalSafeNativeMethods.cs
- BitmapImage.cs
- _NestedSingleAsyncResult.cs
- EqualityArray.cs
- TypeExtension.cs
- ClientConfigurationHost.cs
- PropertyItemInternal.cs
- WinEventHandler.cs
- BufferModesCollection.cs
- WCFModelStrings.Designer.cs
- SerTrace.cs
- Profiler.cs
- DataContractFormatAttribute.cs
- VectorAnimationBase.cs
- OleDbTransaction.cs
- Debugger.cs
- AuthStoreRoleProvider.cs
- SessionPageStatePersister.cs
- EventOpcode.cs
- DataGridItemEventArgs.cs
- SelectionPatternIdentifiers.cs
- ColumnWidthChangingEvent.cs
- SolidColorBrush.cs
- CustomDictionarySources.cs
- Configuration.cs
- AncillaryOps.cs
- SafeNativeMethodsCLR.cs
- SelectionItemPattern.cs
- EventlogProvider.cs
- PipelineComponent.cs
- SizeChangedInfo.cs
- SqlResolver.cs
- JsonSerializer.cs
- DictionaryChange.cs
- MachineSettingsSection.cs
- CursorConverter.cs
- odbcmetadatacolumnnames.cs
- CultureSpecificCharacterBufferRange.cs
- FlowchartDesigner.Helpers.cs
- TextHidden.cs
- ConditionedDesigner.cs
- KeyConverter.cs
- WindowsGrip.cs
- HyperLinkField.cs
- OledbConnectionStringbuilder.cs
- ListControl.cs
- ToolStripPanelRow.cs
- AssertFilter.cs
- AndCondition.cs
- HtmlAnchor.cs
- CodePropertyReferenceExpression.cs
- NegotiateStream.cs
- CriticalHandle.cs
- DataSetMappper.cs
- ScopelessEnumAttribute.cs
- Verify.cs
- ResponseBodyWriter.cs
- CreateParams.cs
- XmlNodeChangedEventManager.cs
- UnionExpr.cs
- CodeNamespace.cs
- DLinqDataModelProvider.cs
- RequestTimeoutManager.cs
- SourceFileInfo.cs
- SoapSchemaExporter.cs
- EmptyCollection.cs
- ValueTable.cs
- ProfileBuildProvider.cs
- ExceptionHandler.cs
- InsufficientMemoryException.cs