Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Common / CommandTrees / DbQueryCommandTree.cs / 1305376 / DbQueryCommandTree.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Data.Metadata.Edm; using System.Data.Common.CommandTrees.Internal; using System.Linq; using System.Diagnostics; namespace System.Data.Common.CommandTrees { ////// Represents a query operation expressed as a canonical command tree. /// [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Db")] public sealed class DbQueryCommandTree : DbCommandTree { // Query expression private readonly DbExpression _query; // Parameter information (will be retrieved from the components of the command tree before construction) private System.Collections.ObjectModel.ReadOnlyCollection_parameters; private DbQueryCommandTree(MetadataWorkspace metadata, DataSpace dataSpace, DbExpression query, bool validate) : base(metadata, dataSpace) { // Ensure the query expression is non-null EntityUtil.CheckArgumentNull(query, "query"); using (new EntityBid.ScopeAuto(" %d#, query=%d#", this.ObjectId, query.ObjectId)) { if (validate) { // Use the valid workspace and data space to validate the query expression DbExpressionValidator validator = new DbExpressionValidator(metadata, dataSpace); validator.ValidateExpression(query, "query"); this._parameters = validator.Parameters.Select(paramInfo => paramInfo.Value).ToList().AsReadOnly(); } this._query = query; } } /// /// Constructs a new DbQueryCommandTree that uses the specified metadata workspace. /// /// The metadata workspace that the command tree should use. /// The logical 'space' that metadata in the expressions used in this command tree must belong to. /// Athat defines the logic of the query. /// /// or is null /*CQT_PUBLIC_API(*/internal/*)*/ DbQueryCommandTree(MetadataWorkspace metadata, DataSpace dataSpace, DbExpression query) : this(metadata, dataSpace, query, true) { } /// does not represent a valid data space /// Gets a public DbExpression Query { get { return this._query; } } internal override DbCommandTreeKind CommandTreeKind { get { return DbCommandTreeKind.Query; } } internal override IEnumerablethat defines the logic of the query. /// > GetParameters() { if (this._parameters == null) { this._parameters = ParameterRetriever.GetParameters(this); } return this._parameters.Select(p => new KeyValuePair (p.ParameterName, p.ResultType)); } internal override void DumpStructure(ExpressionDumper dumper) { if (this.Query != null) { dumper.Dump(this.Query, "Query"); } } internal override string PrintTree(ExpressionPrinter printer) { return printer.Print(this); } internal static DbQueryCommandTree FromValidExpression(MetadataWorkspace metadata, DataSpace dataSpace, DbExpression query) { #if DEBUG return new DbQueryCommandTree(metadata, dataSpace, query); #else return new DbQueryCommandTree(metadata, dataSpace, query, false); #endif } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PartManifestEntry.cs
- FieldNameLookup.cs
- PropertyKey.cs
- ScriptingProfileServiceSection.cs
- ClaimTypes.cs
- FixedPosition.cs
- MimeBasePart.cs
- QueryCursorEventArgs.cs
- IssuanceTokenProviderState.cs
- MdiWindowListItemConverter.cs
- XmlQueryCardinality.cs
- TextDecorationCollection.cs
- CodeMemberField.cs
- StorageComplexPropertyMapping.cs
- XmlSchemaValidationException.cs
- BuildResultCache.cs
- LongValidator.cs
- _Rfc2616CacheValidators.cs
- ItemsControlAutomationPeer.cs
- TextTreePropertyUndoUnit.cs
- ThrowHelper.cs
- StylusEditingBehavior.cs
- InputReport.cs
- XmlTextEncoder.cs
- ContentControl.cs
- MapPathBasedVirtualPathProvider.cs
- PenLineCapValidation.cs
- bidPrivateBase.cs
- NavigatingCancelEventArgs.cs
- NotificationContext.cs
- SelectedDatesCollection.cs
- XPathSelectionIterator.cs
- Mapping.cs
- Int32Storage.cs
- Int16AnimationBase.cs
- ClientFormsIdentity.cs
- RunInstallerAttribute.cs
- DataObjectFieldAttribute.cs
- ProtectedConfiguration.cs
- PropertyTab.cs
- OpenFileDialog.cs
- RemoteWebConfigurationHost.cs
- SEHException.cs
- ReflectionUtil.cs
- AttributeCallbackBuilder.cs
- HttpProfileGroupBase.cs
- NonSerializedAttribute.cs
- MemberPath.cs
- Annotation.cs
- ToggleProviderWrapper.cs
- SocketAddress.cs
- UpdateProgress.cs
- Literal.cs
- CloudCollection.cs
- ZipIOExtraFieldElement.cs
- AggregateNode.cs
- WebPartEditVerb.cs
- ServiceDescriptionData.cs
- Int16Converter.cs
- ActivityCodeDomSerializer.cs
- FormViewInsertedEventArgs.cs
- TreeView.cs
- BaseParagraph.cs
- AutoFocusStyle.xaml.cs
- TextReader.cs
- SizeAnimationClockResource.cs
- KnownTypes.cs
- NamespaceCollection.cs
- Positioning.cs
- AuthenticateEventArgs.cs
- AudioFormatConverter.cs
- WindowsSecurityToken.cs
- LookupBindingPropertiesAttribute.cs
- EventToken.cs
- Utils.cs
- MemberInitExpression.cs
- ISCIIEncoding.cs
- VScrollBar.cs
- FieldDescriptor.cs
- AnchoredBlock.cs
- WindowsEditBox.cs
- AutoGeneratedField.cs
- IndentedTextWriter.cs
- X509CertificateValidationMode.cs
- EntityContainerAssociationSetEnd.cs
- XmlChoiceIdentifierAttribute.cs
- HtmlShimManager.cs
- CompoundFileIOPermission.cs
- VirtualizedCellInfoCollection.cs
- ProfileServiceManager.cs
- OdbcInfoMessageEvent.cs
- HttpFileCollection.cs
- TrackBarRenderer.cs
- HybridCollection.cs
- WindowsHyperlink.cs
- RefType.cs
- CodeVariableReferenceExpression.cs
- MouseGestureValueSerializer.cs
- DrawingBrush.cs
- SqlCacheDependencyDatabaseCollection.cs