Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------------------- // // 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
- WindowsListViewGroup.cs
- XmlElementAttributes.cs
- ExtensionSimplifierMarkupObject.cs
- DataGridViewUtilities.cs
- SingleConverter.cs
- DocumentViewerBaseAutomationPeer.cs
- TypeConverter.cs
- StoreItemCollection.cs
- SectionInput.cs
- WebPartZoneBase.cs
- SoapHeaderAttribute.cs
- AsyncPostBackErrorEventArgs.cs
- GridViewRowPresenterBase.cs
- Span.cs
- CalendarDateChangedEventArgs.cs
- HelpInfo.cs
- TaskHelper.cs
- SchemaElementDecl.cs
- DataGridViewCellStyleChangedEventArgs.cs
- MessageDecoder.cs
- TableDetailsCollection.cs
- RectAnimationClockResource.cs
- ZipIOFileItemStream.cs
- QilList.cs
- StandardCommands.cs
- Shared.cs
- CompilerGeneratedAttribute.cs
- CompositeDataBoundControl.cs
- HostExecutionContextManager.cs
- Vector3DCollection.cs
- SamlAttributeStatement.cs
- DefaultValidator.cs
- DebuggerAttributes.cs
- XmlLinkedNode.cs
- ProgressBar.cs
- DateTimeEditor.cs
- SecurityTokenValidationException.cs
- SynchronizationContext.cs
- ToolBar.cs
- SelectionGlyphBase.cs
- ViewStateChangedEventArgs.cs
- PolicyLevel.cs
- PageHandlerFactory.cs
- HtmlInputReset.cs
- TextFindEngine.cs
- dbdatarecord.cs
- PreloadedPackages.cs
- TypeTypeConverter.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- DoubleLink.cs
- DbReferenceCollection.cs
- SystemUdpStatistics.cs
- PropertyStore.cs
- SoapFormatter.cs
- MsmqIntegrationChannelFactory.cs
- SearchForVirtualItemEventArgs.cs
- TextElementEnumerator.cs
- QilXmlReader.cs
- SafeRightsManagementSessionHandle.cs
- AssemblyAttributesGoHere.cs
- PointF.cs
- ArrangedElement.cs
- SqlTriggerContext.cs
- BigInt.cs
- ConfigurationSettings.cs
- StrokeNodeData.cs
- HttpCookieCollection.cs
- CustomAttributeBuilder.cs
- SerialStream.cs
- OleDbRowUpdatingEvent.cs
- PropertyReferenceExtension.cs
- updateconfighost.cs
- ToolTip.cs
- ClientReliableChannelBinder.cs
- MarshalByRefObject.cs
- EUCJPEncoding.cs
- BypassElementCollection.cs
- StylusPoint.cs
- ProxyAssemblyNotLoadedException.cs
- HtmlLink.cs
- QilXmlReader.cs
- WindowHideOrCloseTracker.cs
- MarshalByRefObject.cs
- RuleSet.cs
- COSERVERINFO.cs
- DataListItemEventArgs.cs
- ClientUrlResolverWrapper.cs
- TimeoutValidationAttribute.cs
- TraceSource.cs
- GAC.cs
- CustomAttributeBuilder.cs
- Timeline.cs
- X509Certificate2Collection.cs
- ButtonColumn.cs
- BidOverLoads.cs
- FixedBufferAttribute.cs
- ArgumentException.cs
- NotifyCollectionChangedEventArgs.cs
- CriticalFinalizerObject.cs
- HostingEnvironment.cs