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.
/// A that defines the logic of the query.
/// or is null
/// does not represent a valid data space
/*CQT_PUBLIC_API(*/internal/*)*/ DbQueryCommandTree(MetadataWorkspace metadata, DataSpace dataSpace, DbExpression query)
: this(metadata, dataSpace, query, true)
{
}
///
/// Gets a that defines the logic of the query.
///
public DbExpression Query
{
get { return this._query; }
}
internal override DbCommandTreeKind CommandTreeKind
{
get { return DbCommandTreeKind.Query; }
}
internal override IEnumerable> 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
- FontDifferentiator.cs
- ObjectSecurity.cs
- BindingsCollection.cs
- IndexedSelectQueryOperator.cs
- ComplexBindingPropertiesAttribute.cs
- BaseCAMarshaler.cs
- BlockExpression.cs
- WSFederationHttpBindingCollectionElement.cs
- CommandLineParser.cs
- ToolStripHighContrastRenderer.cs
- DataFormat.cs
- UserControlBuildProvider.cs
- HostingEnvironmentException.cs
- EdmFunction.cs
- EntityDataSourceDataSelection.cs
- ConnectionConsumerAttribute.cs
- RowsCopiedEventArgs.cs
- FormsAuthenticationConfiguration.cs
- UIElement3D.cs
- XhtmlBasicTextViewAdapter.cs
- CopyNamespacesAction.cs
- ControlCachePolicy.cs
- VisualStyleElement.cs
- SoapAttributes.cs
- PolicyStatement.cs
- HostVisual.cs
- ObjectViewFactory.cs
- Primitive.cs
- XmlHierarchicalDataSourceView.cs
- CardSpaceShim.cs
- ListView.cs
- XmlSchemaGroup.cs
- WindowsTooltip.cs
- ModelServiceImpl.cs
- HttpCapabilitiesSectionHandler.cs
- ServiceHttpHandlerFactory.cs
- BinaryFormatterWriter.cs
- OleDbInfoMessageEvent.cs
- OrderablePartitioner.cs
- ListSourceHelper.cs
- FragmentNavigationEventArgs.cs
- CodeTypeMemberCollection.cs
- DataQuery.cs
- SystemGatewayIPAddressInformation.cs
- DataGridTextColumn.cs
- IfAction.cs
- XPathAxisIterator.cs
- PersonalizationStateQuery.cs
- PagedDataSource.cs
- PrimitiveCodeDomSerializer.cs
- Point3DConverter.cs
- ListViewDeleteEventArgs.cs
- DbProviderManifest.cs
- CanonicalFormWriter.cs
- AtomEntry.cs
- StorageComplexPropertyMapping.cs
- ipaddressinformationcollection.cs
- HttpApplicationFactory.cs
- IssuedTokenClientElement.cs
- X509AsymmetricSecurityKey.cs
- _ChunkParse.cs
- RSAPKCS1KeyExchangeFormatter.cs
- HttpContext.cs
- BooleanExpr.cs
- WebPartConnectionsEventArgs.cs
- _SpnDictionary.cs
- ColorConvertedBitmap.cs
- RegexCompiler.cs
- Expander.cs
- SchemaManager.cs
- EventListener.cs
- BuildProviderCollection.cs
- InternalCache.cs
- XamlWriterExtensions.cs
- XmlNavigatorStack.cs
- EditingScopeUndoUnit.cs
- TextUtf8RawTextWriter.cs
- BodyWriter.cs
- RayMeshGeometry3DHitTestResult.cs
- WmlFormAdapter.cs
- mediapermission.cs
- AnnotationService.cs
- DbInsertCommandTree.cs
- WindowsMenu.cs
- DataMemberAttribute.cs
- ItemChangedEventArgs.cs
- ObjectTag.cs
- UnsignedPublishLicense.cs
- PromptEventArgs.cs
- TypeReference.cs
- PropertyManager.cs
- ThumbButtonInfoCollection.cs
- AddInContractAttribute.cs
- MessageEncoderFactory.cs
- parserscommon.cs
- LineProperties.cs
- GridLengthConverter.cs
- _AutoWebProxyScriptHelper.cs
- DataGridViewRowPostPaintEventArgs.cs
- UInt16Converter.cs