Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Common / CommandTrees / DbFunctionCommandTree.cs / 1305376 / DbFunctionCommandTree.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;
namespace System.Data.Common.CommandTrees
{
///
/// Represents a function invocation expressed as a canonical command tree
///
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Db")]
public sealed class DbFunctionCommandTree : DbCommandTree
{
private readonly EdmFunction _edmFunction;
private readonly TypeUsage _resultType;
private readonly System.Collections.ObjectModel.ReadOnlyCollection _parameterNames;
private readonly System.Collections.ObjectModel.ReadOnlyCollection _parameterTypes;
///
/// Constructs a new DbFunctionCommandTree that uses the specified metadata workspace, data space and function metadata
///
/// 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.
///
///
///
/// , or is null
/// does not represent a valid data space or
/// is a composable function
/*CQT_PUBLIC_API(*/internal/*)*/ DbFunctionCommandTree(MetadataWorkspace metadata, DataSpace dataSpace, EdmFunction edmFunction, TypeUsage resultType, IEnumerable> parameters)
: base(metadata, dataSpace)
{
using (new EntityBid.ScopeAuto(" %d#", this.ObjectId))
{
EntityUtil.CheckArgumentNull(edmFunction, "edmFunction");
_edmFunction = edmFunction;
_resultType = resultType;
List paramNames = new List();
List paramTypes = new List();
if (parameters != null)
{
foreach (KeyValuePair paramInfo in parameters)
{
paramNames.Add(paramInfo.Key);
paramTypes.Add(paramInfo.Value);
}
}
_parameterNames = paramNames.AsReadOnly();
_parameterTypes = paramTypes.AsReadOnly();
}
}
///
/// Gets the that represents the function to invoke
///
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Edm")]
public EdmFunction EdmFunction
{
get
{
return _edmFunction;
}
}
///
/// Gets the result type of the function; currently constrained to be a Collection of
/// RowTypes. Unlike typical RowType instance, merely indicates name/type not parameter
/// order.
///
public TypeUsage ResultType
{
get
{
return _resultType;
}
}
internal override DbCommandTreeKind CommandTreeKind
{
get { return DbCommandTreeKind.Function; }
}
internal override IEnumerable> GetParameters()
{
for (int idx = 0; idx < this._parameterNames.Count; idx++)
{
yield return new KeyValuePair(this._parameterNames[idx], this._parameterTypes[idx]);
}
}
internal override void DumpStructure(ExpressionDumper dumper)
{
if (this.EdmFunction != null)
{
dumper.Dump(this.EdmFunction);
}
}
internal override string PrintTree(ExpressionPrinter printer)
{
return printer.Print(this);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//----------------------------------------------------------------------
//
// 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;
namespace System.Data.Common.CommandTrees
{
///
/// Represents a function invocation expressed as a canonical command tree
///
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Db")]
public sealed class DbFunctionCommandTree : DbCommandTree
{
private readonly EdmFunction _edmFunction;
private readonly TypeUsage _resultType;
private readonly System.Collections.ObjectModel.ReadOnlyCollection _parameterNames;
private readonly System.Collections.ObjectModel.ReadOnlyCollection _parameterTypes;
///
/// Constructs a new DbFunctionCommandTree that uses the specified metadata workspace, data space and function metadata
///
/// 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.
///
///
///
/// , or is null
/// does not represent a valid data space or
/// is a composable function
/*CQT_PUBLIC_API(*/internal/*)*/ DbFunctionCommandTree(MetadataWorkspace metadata, DataSpace dataSpace, EdmFunction edmFunction, TypeUsage resultType, IEnumerable> parameters)
: base(metadata, dataSpace)
{
using (new EntityBid.ScopeAuto(" %d#", this.ObjectId))
{
EntityUtil.CheckArgumentNull(edmFunction, "edmFunction");
_edmFunction = edmFunction;
_resultType = resultType;
List paramNames = new List();
List paramTypes = new List();
if (parameters != null)
{
foreach (KeyValuePair paramInfo in parameters)
{
paramNames.Add(paramInfo.Key);
paramTypes.Add(paramInfo.Value);
}
}
_parameterNames = paramNames.AsReadOnly();
_parameterTypes = paramTypes.AsReadOnly();
}
}
///
/// Gets the that represents the function to invoke
///
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Edm")]
public EdmFunction EdmFunction
{
get
{
return _edmFunction;
}
}
///
/// Gets the result type of the function; currently constrained to be a Collection of
/// RowTypes. Unlike typical RowType instance, merely indicates name/type not parameter
/// order.
///
public TypeUsage ResultType
{
get
{
return _resultType;
}
}
internal override DbCommandTreeKind CommandTreeKind
{
get { return DbCommandTreeKind.Function; }
}
internal override IEnumerable> GetParameters()
{
for (int idx = 0; idx < this._parameterNames.Count; idx++)
{
yield return new KeyValuePair(this._parameterNames[idx], this._parameterTypes[idx]);
}
}
internal override void DumpStructure(ExpressionDumper dumper)
{
if (this.EdmFunction != null)
{
dumper.Dump(this.EdmFunction);
}
}
internal override string PrintTree(ExpressionPrinter printer)
{
return printer.Print(this);
}
}
}
// 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
- KnownTypeDataContractResolver.cs
- CellIdBoolean.cs
- WorkflowNamespace.cs
- ProfileEventArgs.cs
- KeyboardNavigation.cs
- BindingEntityInfo.cs
- SystemMulticastIPAddressInformation.cs
- Volatile.cs
- Cell.cs
- ACL.cs
- SqlErrorCollection.cs
- RotateTransform3D.cs
- TripleDESCryptoServiceProvider.cs
- IgnoreFileBuildProvider.cs
- ObjectHandle.cs
- SocketPermission.cs
- processwaithandle.cs
- DataTransferEventArgs.cs
- DocumentGridContextMenu.cs
- SwitchAttribute.cs
- basevalidator.cs
- EnvironmentPermission.cs
- AdornerHitTestResult.cs
- BaseValidator.cs
- SafeHandle.cs
- TreeViewCancelEvent.cs
- DataRecord.cs
- JumpTask.cs
- SR.cs
- Simplifier.cs
- References.cs
- ProgressiveCrcCalculatingStream.cs
- PanelDesigner.cs
- WindowsNonControl.cs
- UIElement3D.cs
- MeasureItemEvent.cs
- FixedSOMSemanticBox.cs
- QueuedDeliveryRequirementsMode.cs
- ToolStripItemEventArgs.cs
- nulltextcontainer.cs
- DesignerSerializationVisibilityAttribute.cs
- CompilerCollection.cs
- DependencyProperty.cs
- PerspectiveCamera.cs
- Int64AnimationBase.cs
- WorkflowNamespace.cs
- SchemaImporterExtension.cs
- Figure.cs
- IsolatedStorageException.cs
- FeatureSupport.cs
- Command.cs
- AvTraceDetails.cs
- RegexTypeEditor.cs
- MetadataPropertyvalue.cs
- ContextMenuStripActionList.cs
- UrlMappingsSection.cs
- Line.cs
- CodeThrowExceptionStatement.cs
- TemplateComponentConnector.cs
- UnsafeNativeMethods.cs
- ListenerUnsafeNativeMethods.cs
- ObjectDataSource.cs
- SoapTypeAttribute.cs
- DbParameterCollectionHelper.cs
- DrawingServices.cs
- NetworkInterface.cs
- EdmProviderManifest.cs
- RadioButtonPopupAdapter.cs
- XmlSchemaSimpleTypeRestriction.cs
- DataGridViewBand.cs
- StyleSelector.cs
- KeyedHashAlgorithm.cs
- AsymmetricSignatureDeformatter.cs
- WebPartTransformer.cs
- ContextDataSource.cs
- HtmlInputImage.cs
- PriorityRange.cs
- MimeTypePropertyAttribute.cs
- StickyNote.cs
- _DomainName.cs
- ObjectDataSourceView.cs
- AutomationProperties.cs
- ImageMapEventArgs.cs
- NameValuePair.cs
- TableRow.cs
- CodeCommentStatement.cs
- SessionPageStatePersister.cs
- util.cs
- InfoCardRSACryptoProvider.cs
- DbBuffer.cs
- MouseOverProperty.cs
- VerificationAttribute.cs
- DataServiceQueryContinuation.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- SpotLight.cs
- StoreContentChangedEventArgs.cs
- BasicKeyConstraint.cs
- XmlReaderSettings.cs
- XmlDocumentType.cs
- PointLight.cs