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
- CircleEase.cs
- ToolboxItem.cs
- WrapPanel.cs
- StatusBarDrawItemEvent.cs
- XmlNullResolver.cs
- BrushValueSerializer.cs
- XmlTypeAttribute.cs
- RouteData.cs
- TemplateContentLoader.cs
- GridView.cs
- DataGridViewAutoSizeModeEventArgs.cs
- ScriptingAuthenticationServiceSection.cs
- NetworkInterface.cs
- TextParaClient.cs
- ProxyFragment.cs
- regiisutil.cs
- SizeAnimation.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- DataView.cs
- X509Certificate2Collection.cs
- BinaryFormatter.cs
- ClusterRegistryConfigurationProvider.cs
- QilInvoke.cs
- FileRegion.cs
- Root.cs
- SplitterCancelEvent.cs
- OrderedDictionary.cs
- SerialErrors.cs
- SqlCacheDependency.cs
- ReadOnlyPropertyMetadata.cs
- ADRoleFactoryConfiguration.cs
- WebPartHeaderCloseVerb.cs
- sitestring.cs
- SQLDecimal.cs
- Decorator.cs
- SecureStringHasher.cs
- ConstraintEnumerator.cs
- GenericWebPart.cs
- DataGridTablesFactory.cs
- TargetInvocationException.cs
- EdmProviderManifest.cs
- MailMessage.cs
- BinaryConverter.cs
- SmtpNtlmAuthenticationModule.cs
- ValueQuery.cs
- MiniCustomAttributeInfo.cs
- XslVisitor.cs
- QilGenerator.cs
- SourceSwitch.cs
- SelectedDatesCollection.cs
- EndpointInfo.cs
- UnsafeNativeMethodsMilCoreApi.cs
- JournalEntry.cs
- WebPartMenu.cs
- XmlDataSource.cs
- InputScope.cs
- HttpListenerContext.cs
- BoolLiteral.cs
- LocalizationParserHooks.cs
- CodeCommentStatement.cs
- WSAddressing10ProblemHeaderQNameFault.cs
- ConnectionDemuxer.cs
- ButtonBase.cs
- CompositionTarget.cs
- SafeLocalMemHandle.cs
- MenuTracker.cs
- DynamicFilter.cs
- RangeEnumerable.cs
- ChangeInterceptorAttribute.cs
- WebConfigurationManager.cs
- SkipQueryOptionExpression.cs
- HtmlInputImage.cs
- Point3DAnimation.cs
- SortedList.cs
- DecimalStorage.cs
- PageTheme.cs
- MappingItemCollection.cs
- Attributes.cs
- BrushConverter.cs
- WebUtil.cs
- CompositeDataBoundControl.cs
- WebPartConnectionsCancelVerb.cs
- ScriptRegistrationManager.cs
- PanelStyle.cs
- InputLanguageEventArgs.cs
- FlagsAttribute.cs
- HttpBrowserCapabilitiesBase.cs
- ValidationError.cs
- HttpVersion.cs
- oledbconnectionstring.cs
- ExpressionEditorAttribute.cs
- DeclarationUpdate.cs
- TextEditorContextMenu.cs
- SqlVersion.cs
- PassportIdentity.cs
- SegmentTree.cs
- EnumConverter.cs
- InputBinder.cs
- WorkflowElementDialog.cs
- TextTreePropertyUndoUnit.cs