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
- PostBackTrigger.cs
- Timeline.cs
- SerializerProvider.cs
- ToolStripDropTargetManager.cs
- IIS7UserPrincipal.cs
- AsymmetricSignatureDeformatter.cs
- StorageMappingFragment.cs
- SqlInternalConnectionTds.cs
- TreeViewItemAutomationPeer.cs
- _NestedMultipleAsyncResult.cs
- SqlError.cs
- SoapFaultCodes.cs
- FixedLineResult.cs
- OdbcError.cs
- FlagsAttribute.cs
- SqlException.cs
- TextHidden.cs
- ManifestResourceInfo.cs
- RowToFieldTransformer.cs
- WinInetCache.cs
- TemplateApplicationHelper.cs
- TextTreeTextBlock.cs
- BamlMapTable.cs
- HatchBrush.cs
- Rect3D.cs
- ButtonFlatAdapter.cs
- WorkflowInstanceExtensionCollection.cs
- RoutedPropertyChangedEventArgs.cs
- EntityCommandExecutionException.cs
- PageVisual.cs
- NumberAction.cs
- QueryRewriter.cs
- AssemblyName.cs
- GridViewRowCollection.cs
- BufferedWebEventProvider.cs
- StylusButtonCollection.cs
- GuidTagList.cs
- DrawingContextDrawingContextWalker.cs
- AbandonedMutexException.cs
- DetailsViewCommandEventArgs.cs
- EncodingTable.cs
- InputGestureCollection.cs
- OdbcCommand.cs
- GraphicsPath.cs
- input.cs
- ListBoxItemWrapperAutomationPeer.cs
- StatusBarPanel.cs
- AssemblyBuilder.cs
- XmlSchemaImport.cs
- EpmSyndicationContentSerializer.cs
- EventsTab.cs
- AtomServiceDocumentSerializer.cs
- Localizer.cs
- PersistenceProviderDirectory.cs
- WebScriptEnablingBehavior.cs
- SettingsPropertyCollection.cs
- ForeignKeyConstraint.cs
- FileSystemEventArgs.cs
- __Filters.cs
- WriteTimeStream.cs
- LabelAutomationPeer.cs
- NativeMethodsOther.cs
- XPathScanner.cs
- Identifier.cs
- PropertyMap.cs
- HandlerFactoryCache.cs
- ObjectSecurityT.cs
- VariableDesigner.xaml.cs
- NullableLongSumAggregationOperator.cs
- SqlBulkCopyColumnMapping.cs
- DocumentReference.cs
- TreeView.cs
- Attribute.cs
- XhtmlBasicSelectionListAdapter.cs
- PlainXmlDeserializer.cs
- WorkflowApplicationCompletedException.cs
- MetricEntry.cs
- RadioButtonStandardAdapter.cs
- ActivityPreviewDesigner.cs
- AnonymousIdentificationModule.cs
- WebPart.cs
- EmptyStringExpandableObjectConverter.cs
- Process.cs
- ClientScriptManager.cs
- SpellerInterop.cs
- DataGridViewRowCancelEventArgs.cs
- Normalization.cs
- SecurityAccessDeniedException.cs
- ErrorInfoXmlDocument.cs
- Point3DCollection.cs
- RealProxy.cs
- StickyNote.cs
- _BaseOverlappedAsyncResult.cs
- XamlWrapperReaders.cs
- BufferedWebEventProvider.cs
- ExceptionTranslationTable.cs
- Roles.cs
- ContextBase.cs
- OracleConnectionString.cs
- List.cs