Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataEntity / System / Data / Metadata / StoreItemCollection.cs / 1 / StoreItemCollection.cs
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....]
// @backupOwner [....]
//---------------------------------------------------------------------
using System.Collections.Generic;
using System.Data.Common;
using System.Data.Common.Utils;
using System.Diagnostics;
using System.Xml;
using System.Data.Entity;
using System.Linq;
namespace System.Data.Metadata.Edm
{
///
/// Class for representing a collection of items in Store space.
///
public sealed partial class StoreItemCollection : ItemCollection
{
#region Fields
// Cache for primitive type maps for Edm to provider
private readonly CacheForPrimitiveTypes _primitiveTypeMaps = new CacheForPrimitiveTypes();
private readonly Memoizer _cachedCTypeFunction;
private readonly DbProviderManifest _providerManifest;
private readonly DbProviderFactory _providerFactory;
// Storing the query cache manager in the store item collection since all queries are currently bound to the
// store. So storing it in StoreItemCollection makes sense. Also, since query cache requires version and other
// stuff of the provider, we can assume that the connection is always open and we have the store metadata.
// Also we can use the same cache manager both for Entity Client and Object Query, since query cache has
// no reference to any metadata in OSpace. Also we assume that ObjectMaterializer loads the assembly
// before it tries to do object materialization, since we might not have loaded an assembly in another workspace
// where this store item collection is getting reused
private readonly System.Data.Common.QueryCache.QueryCacheManager _queryCacheManager = System.Data.Common.QueryCache.QueryCacheManager.Create();
#endregion
#region Constructors
// used by EntityStoreSchemaGenerator to start with an empty (primitive types only) StoreItemCollection and
// add types discovered from the database
internal StoreItemCollection(DbProviderFactory factory, DbProviderManifest manifest)
: base(DataSpace.SSpace)
{
Debug.Assert(factory != null, "factory is null");
Debug.Assert(manifest != null, "manifest is null");
_providerFactory = factory;
_providerManifest = manifest;
_cachedCTypeFunction = new Memoizer(ConvertFunctionParameterToCType, null);
LoadProviderManifest(_providerManifest, true /*checkForSystemNamespace*/);
}
///
/// constructor that loads the metadata files from the specified xmlReaders, and returns the list of errors
/// encountered during load as the out parameter errors.
///
/// Publicly available from System.Data.Entity.Desgin.dll
///
/// xmlReaders where the CDM schemas are loaded
/// the paths where the files can be found that match the xml readers collection
/// An out parameter to return the collection of errors encountered while loading
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] // referenced by System.Data.Entity.Design.dll
internal StoreItemCollection(IEnumerable xmlReaders,
System.Collections.ObjectModel.ReadOnlyCollection filePaths,
out IList errors)
: base(DataSpace.SSpace)
{
EntityUtil.CheckArgumentNull(xmlReaders, "xmlReaders");
EntityUtil.CheckArgumentEmpty(ref xmlReaders, Strings.StoreItemCollectionMustHaveOneArtifact, "xmlReader");
errors = this.Init(xmlReaders, filePaths, false,
out _providerManifest,
out _providerFactory,
out _cachedCTypeFunction);
}
///
/// constructor that loads the metadata files from the specified xmlReaders, and returns the list of errors
/// encountered during load as the out parameter errors.
///
/// Publicly available from System.Data.Entity.Desgin.dll
///
/// xmlReaders where the CDM schemas are loaded
/// the paths where the files can be found that match the xml readers collection
internal StoreItemCollection(IEnumerable xmlReaders,
IEnumerable filePaths)
: base(DataSpace.SSpace)
{
EntityUtil.CheckArgumentNull(filePaths, "filePaths");
EntityUtil.CheckArgumentEmpty(ref xmlReaders, Strings.StoreItemCollectionMustHaveOneArtifact, "xmlReader");
this.Init(xmlReaders, filePaths, true,
out _providerManifest,
out _providerFactory,
out _cachedCTypeFunction);
}
///
/// Public constructor that loads the metadata files from the specified xmlReaders.
/// Throws when encounter errors.
///
/// xmlReaders where the CDM schemas are loaded
public StoreItemCollection(IEnumerable xmlReaders)
: base(DataSpace.SSpace)
{
EntityUtil.CheckArgumentNull(xmlReaders, "xmlReaders");
EntityUtil.CheckArgumentEmpty(ref xmlReaders, Strings.StoreItemCollectionMustHaveOneArtifact, "xmlReader");
MetadataArtifactLoader composite = MetadataArtifactLoader.CreateCompositeFromXmlReaders(xmlReaders);
this.Init(composite.GetReaders(),
composite.GetPaths(), true,
out _providerManifest,
out _providerFactory,
out _cachedCTypeFunction);
}
///
/// Constructs the new instance of StoreItemCollection
/// with the list of CDM files provided.
///
/// paths where the CDM schemas are loaded
/// Thrown if path name is not valid
/// thrown if paths argument is null
/// For errors related to invalid schemas.
public StoreItemCollection(params string[] filePaths)
: base(DataSpace.SSpace)
{
EntityUtil.CheckArgumentNull(filePaths, "filePaths");
IEnumerable enumerableFilePaths = filePaths;
EntityUtil.CheckArgumentEmpty(ref enumerableFilePaths, Strings.StoreItemCollectionMustHaveOneArtifact, "filePaths");
// Wrap the file paths in instances of the MetadataArtifactLoader class, which provides
// an abstraction and a uniform interface over a diverse set of metadata artifacts.
//
MetadataArtifactLoader composite = null;
List readers = null;
try
{
composite = MetadataArtifactLoader.CreateCompositeFromFilePaths(enumerableFilePaths, XmlConstants.SSpaceSchemaExtension);
readers = composite.CreateReaders(DataSpace.SSpace);
IEnumerable ieReaders = readers.AsEnumerable();
EntityUtil.CheckArgumentEmpty(ref ieReaders, Strings.StoreItemCollectionMustHaveOneArtifact, "filePaths");
this.Init(readers,
composite.GetPaths(DataSpace.SSpace), true,
out _providerManifest,
out _providerFactory,
out _cachedCTypeFunction);
}
finally
{
if (readers != null)
{
Helper.DisposeXmlReaders(readers);
}
}
}
private IList Init(IEnumerable xmlReaders,
IEnumerable filePaths, bool throwOnError,
out DbProviderManifest providerManifest,
out DbProviderFactory providerFactory,
out Memoizer cachedCTypeFunction)
{
EntityUtil.CheckArgumentNull(xmlReaders, "xmlReaders");
// 'filePaths' can be null
cachedCTypeFunction = new Memoizer(ConvertFunctionParameterToCType, null);
Loader loader = new Loader(xmlReaders, filePaths, throwOnError);
providerFactory = loader.ProviderFactory;
providerManifest = loader.ProviderManifest;
// load the items into the colleciton
if (!loader.HasNonWarningErrors)
{
LoadProviderManifest(loader.ProviderManifest, true /* check for system namespace */);
List errorList = EdmItemCollection.LoadItems(_providerManifest, loader.Schemas, this);
foreach (var error in errorList)
{
loader.Errors.Add(error);
}
if (throwOnError && errorList.Count != 0)
loader.ThrowOnNonWarningErrors();
}
return loader.Errors;
}
#endregion
#region Properties
///
/// Returns the query cache manager
///
internal System.Data.Common.QueryCache.QueryCacheManager QueryCacheManager
{
get { return _queryCacheManager; }
}
internal DbProviderFactory StoreProviderFactory
{
get
{
return _providerFactory;
}
}
internal DbProviderManifest StoreProviderManifest
{
get
{
return _providerManifest;
}
}
#endregion
#region Methods
///
/// Get the list of primitive types for the given space
///
///
public System.Collections.ObjectModel.ReadOnlyCollection GetPrimitiveTypes()
{
return _primitiveTypeMaps.GetTypes();
}
///
/// Given the canonical primitive type, get the mapping primitive type in the given dataspace
///
/// canonical primitive type
/// The mapped scalar type
internal override PrimitiveType GetMappedPrimitiveType(PrimitiveTypeKind primitiveTypeKind)
{
PrimitiveType type = null;
_primitiveTypeMaps.TryGetType(primitiveTypeKind, null, out type);
return type;
}
///
/// checks if the schemaKey refers to the provider manifest schema key
/// and if true, loads the provider manifest
///
/// The connection where the store manifest is loaded from
/// Check for System namespace
/// The provider manifest object that was loaded
private void LoadProviderManifest(DbProviderManifest storeManifest,
bool checkForSystemNamespace)
{
foreach (PrimitiveType primitiveType in storeManifest.GetStoreTypes())
{
//Add it to the collection and the primitive type maps
this.AddInternal(primitiveType);
_primitiveTypeMaps.Add(primitiveType);
}
foreach (EdmFunction function in storeManifest.GetStoreFunctions())
{
AddInternal(function);
}
}
#endregion
///
/// Get all the overloads of the function with the given name, this method is used for internal perspective
///
/// The full name of the function
/// true for case-insensitive lookup
/// A collection of all the functions with the given name in the given data space
/// Thrown if functionaName argument passed in is null
internal System.Collections.ObjectModel.ReadOnlyCollection GetCTypeFunctions(string functionName, bool ignoreCase)
{
System.Collections.ObjectModel.ReadOnlyCollection functionOverloads;
if (this.FunctionLookUpTable.TryGetValue(functionName, out functionOverloads))
{
functionOverloads = ConvertToCTypeFunctions(functionOverloads);
if (ignoreCase)
{
return functionOverloads;
}
return GetCaseSensitiveFunctions(functionOverloads, functionName);
}
return Helper.EmptyEdmFunctionReadOnlyCollection;
}
private System.Collections.ObjectModel.ReadOnlyCollection ConvertToCTypeFunctions(
System.Collections.ObjectModel.ReadOnlyCollection functionOverloads)
{
List cTypeFunctions =
new List();
foreach (var sTypeFunction in functionOverloads)
{
cTypeFunctions.Add(this._cachedCTypeFunction.Evaluate(sTypeFunction));
}
return cTypeFunctions.AsReadOnly();
}
///
/// Convert the S type function parameters and returnType to C type
///
///
///
private EdmFunction ConvertFunctionParameterToCType(EdmFunction sTypeFunction)
{
if (sTypeFunction.IsFromProviderManifest)
{
return sTypeFunction;
}
FunctionParameter returnParameter = null;
if (sTypeFunction.ReturnParameter != null)
{
TypeUsage edmTypeUsageReturnParameter =
MetadataHelper.ConvertStoreTypeUsageToEdmTypeUsage(sTypeFunction.ReturnParameter.TypeUsage);
returnParameter =
new FunctionParameter(
sTypeFunction.ReturnParameter.Name,
edmTypeUsageReturnParameter,
sTypeFunction.ReturnParameter.GetParameterMode());
}
List parameters = new List();
if (sTypeFunction.Parameters.Count > 0)
{
foreach (var parameter in sTypeFunction.Parameters)
{
TypeUsage edmTypeUsage = MetadataHelper.ConvertStoreTypeUsageToEdmTypeUsage(parameter.TypeUsage);
FunctionParameter edmTypeParameter = new FunctionParameter(parameter.Name, edmTypeUsage, parameter.GetParameterMode());
parameters.Add(edmTypeParameter);
}
}
EdmFunction edmFunction = new EdmFunction(sTypeFunction.Name,
sTypeFunction.NamespaceName,
DataSpace.CSpace,
new EdmFunctionPayload
{
Schema = sTypeFunction.Schema,
StoreFunctionName = sTypeFunction.StoreFunctionNameAttribute,
CommandText = sTypeFunction.CommandTextAttribute,
IsAggregate = sTypeFunction.AggregateAttribute,
IsBuiltIn = sTypeFunction.BuiltInAttribute,
IsNiladic = sTypeFunction.NiladicFunctionAttribute,
IsComposable = sTypeFunction.IsComposableAttribute,
IsFromProviderManifest = sTypeFunction.IsFromProviderManifest,
IsCachedStoreFunction = true,
ReturnParameter = returnParameter,
Parameters = parameters.ToArray(),
ParameterTypeSemantics = sTypeFunction.ParameterTypeSemanticsAttribute,
});
edmFunction.SetReadOnly();
return edmFunction;
}
}//---- ItemCollection
}//----
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....]
// @backupOwner [....]
//---------------------------------------------------------------------
using System.Collections.Generic;
using System.Data.Common;
using System.Data.Common.Utils;
using System.Diagnostics;
using System.Xml;
using System.Data.Entity;
using System.Linq;
namespace System.Data.Metadata.Edm
{
///
/// Class for representing a collection of items in Store space.
///
public sealed partial class StoreItemCollection : ItemCollection
{
#region Fields
// Cache for primitive type maps for Edm to provider
private readonly CacheForPrimitiveTypes _primitiveTypeMaps = new CacheForPrimitiveTypes();
private readonly Memoizer _cachedCTypeFunction;
private readonly DbProviderManifest _providerManifest;
private readonly DbProviderFactory _providerFactory;
// Storing the query cache manager in the store item collection since all queries are currently bound to the
// store. So storing it in StoreItemCollection makes sense. Also, since query cache requires version and other
// stuff of the provider, we can assume that the connection is always open and we have the store metadata.
// Also we can use the same cache manager both for Entity Client and Object Query, since query cache has
// no reference to any metadata in OSpace. Also we assume that ObjectMaterializer loads the assembly
// before it tries to do object materialization, since we might not have loaded an assembly in another workspace
// where this store item collection is getting reused
private readonly System.Data.Common.QueryCache.QueryCacheManager _queryCacheManager = System.Data.Common.QueryCache.QueryCacheManager.Create();
#endregion
#region Constructors
// used by EntityStoreSchemaGenerator to start with an empty (primitive types only) StoreItemCollection and
// add types discovered from the database
internal StoreItemCollection(DbProviderFactory factory, DbProviderManifest manifest)
: base(DataSpace.SSpace)
{
Debug.Assert(factory != null, "factory is null");
Debug.Assert(manifest != null, "manifest is null");
_providerFactory = factory;
_providerManifest = manifest;
_cachedCTypeFunction = new Memoizer(ConvertFunctionParameterToCType, null);
LoadProviderManifest(_providerManifest, true /*checkForSystemNamespace*/);
}
///
/// constructor that loads the metadata files from the specified xmlReaders, and returns the list of errors
/// encountered during load as the out parameter errors.
///
/// Publicly available from System.Data.Entity.Desgin.dll
///
/// xmlReaders where the CDM schemas are loaded
/// the paths where the files can be found that match the xml readers collection
/// An out parameter to return the collection of errors encountered while loading
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] // referenced by System.Data.Entity.Design.dll
internal StoreItemCollection(IEnumerable xmlReaders,
System.Collections.ObjectModel.ReadOnlyCollection filePaths,
out IList errors)
: base(DataSpace.SSpace)
{
EntityUtil.CheckArgumentNull(xmlReaders, "xmlReaders");
EntityUtil.CheckArgumentEmpty(ref xmlReaders, Strings.StoreItemCollectionMustHaveOneArtifact, "xmlReader");
errors = this.Init(xmlReaders, filePaths, false,
out _providerManifest,
out _providerFactory,
out _cachedCTypeFunction);
}
///
/// constructor that loads the metadata files from the specified xmlReaders, and returns the list of errors
/// encountered during load as the out parameter errors.
///
/// Publicly available from System.Data.Entity.Desgin.dll
///
/// xmlReaders where the CDM schemas are loaded
/// the paths where the files can be found that match the xml readers collection
internal StoreItemCollection(IEnumerable xmlReaders,
IEnumerable filePaths)
: base(DataSpace.SSpace)
{
EntityUtil.CheckArgumentNull(filePaths, "filePaths");
EntityUtil.CheckArgumentEmpty(ref xmlReaders, Strings.StoreItemCollectionMustHaveOneArtifact, "xmlReader");
this.Init(xmlReaders, filePaths, true,
out _providerManifest,
out _providerFactory,
out _cachedCTypeFunction);
}
///
/// Public constructor that loads the metadata files from the specified xmlReaders.
/// Throws when encounter errors.
///
/// xmlReaders where the CDM schemas are loaded
public StoreItemCollection(IEnumerable xmlReaders)
: base(DataSpace.SSpace)
{
EntityUtil.CheckArgumentNull(xmlReaders, "xmlReaders");
EntityUtil.CheckArgumentEmpty(ref xmlReaders, Strings.StoreItemCollectionMustHaveOneArtifact, "xmlReader");
MetadataArtifactLoader composite = MetadataArtifactLoader.CreateCompositeFromXmlReaders(xmlReaders);
this.Init(composite.GetReaders(),
composite.GetPaths(), true,
out _providerManifest,
out _providerFactory,
out _cachedCTypeFunction);
}
///
/// Constructs the new instance of StoreItemCollection
/// with the list of CDM files provided.
///
/// paths where the CDM schemas are loaded
/// Thrown if path name is not valid
/// thrown if paths argument is null
/// For errors related to invalid schemas.
public StoreItemCollection(params string[] filePaths)
: base(DataSpace.SSpace)
{
EntityUtil.CheckArgumentNull(filePaths, "filePaths");
IEnumerable enumerableFilePaths = filePaths;
EntityUtil.CheckArgumentEmpty(ref enumerableFilePaths, Strings.StoreItemCollectionMustHaveOneArtifact, "filePaths");
// Wrap the file paths in instances of the MetadataArtifactLoader class, which provides
// an abstraction and a uniform interface over a diverse set of metadata artifacts.
//
MetadataArtifactLoader composite = null;
List readers = null;
try
{
composite = MetadataArtifactLoader.CreateCompositeFromFilePaths(enumerableFilePaths, XmlConstants.SSpaceSchemaExtension);
readers = composite.CreateReaders(DataSpace.SSpace);
IEnumerable ieReaders = readers.AsEnumerable();
EntityUtil.CheckArgumentEmpty(ref ieReaders, Strings.StoreItemCollectionMustHaveOneArtifact, "filePaths");
this.Init(readers,
composite.GetPaths(DataSpace.SSpace), true,
out _providerManifest,
out _providerFactory,
out _cachedCTypeFunction);
}
finally
{
if (readers != null)
{
Helper.DisposeXmlReaders(readers);
}
}
}
private IList Init(IEnumerable xmlReaders,
IEnumerable filePaths, bool throwOnError,
out DbProviderManifest providerManifest,
out DbProviderFactory providerFactory,
out Memoizer cachedCTypeFunction)
{
EntityUtil.CheckArgumentNull(xmlReaders, "xmlReaders");
// 'filePaths' can be null
cachedCTypeFunction = new Memoizer(ConvertFunctionParameterToCType, null);
Loader loader = new Loader(xmlReaders, filePaths, throwOnError);
providerFactory = loader.ProviderFactory;
providerManifest = loader.ProviderManifest;
// load the items into the colleciton
if (!loader.HasNonWarningErrors)
{
LoadProviderManifest(loader.ProviderManifest, true /* check for system namespace */);
List errorList = EdmItemCollection.LoadItems(_providerManifest, loader.Schemas, this);
foreach (var error in errorList)
{
loader.Errors.Add(error);
}
if (throwOnError && errorList.Count != 0)
loader.ThrowOnNonWarningErrors();
}
return loader.Errors;
}
#endregion
#region Properties
///
/// Returns the query cache manager
///
internal System.Data.Common.QueryCache.QueryCacheManager QueryCacheManager
{
get { return _queryCacheManager; }
}
internal DbProviderFactory StoreProviderFactory
{
get
{
return _providerFactory;
}
}
internal DbProviderManifest StoreProviderManifest
{
get
{
return _providerManifest;
}
}
#endregion
#region Methods
///
/// Get the list of primitive types for the given space
///
///
public System.Collections.ObjectModel.ReadOnlyCollection GetPrimitiveTypes()
{
return _primitiveTypeMaps.GetTypes();
}
///
/// Given the canonical primitive type, get the mapping primitive type in the given dataspace
///
/// canonical primitive type
/// The mapped scalar type
internal override PrimitiveType GetMappedPrimitiveType(PrimitiveTypeKind primitiveTypeKind)
{
PrimitiveType type = null;
_primitiveTypeMaps.TryGetType(primitiveTypeKind, null, out type);
return type;
}
///
/// checks if the schemaKey refers to the provider manifest schema key
/// and if true, loads the provider manifest
///
/// The connection where the store manifest is loaded from
/// Check for System namespace
/// The provider manifest object that was loaded
private void LoadProviderManifest(DbProviderManifest storeManifest,
bool checkForSystemNamespace)
{
foreach (PrimitiveType primitiveType in storeManifest.GetStoreTypes())
{
//Add it to the collection and the primitive type maps
this.AddInternal(primitiveType);
_primitiveTypeMaps.Add(primitiveType);
}
foreach (EdmFunction function in storeManifest.GetStoreFunctions())
{
AddInternal(function);
}
}
#endregion
///
/// Get all the overloads of the function with the given name, this method is used for internal perspective
///
/// The full name of the function
/// true for case-insensitive lookup
/// A collection of all the functions with the given name in the given data space
/// Thrown if functionaName argument passed in is null
internal System.Collections.ObjectModel.ReadOnlyCollection GetCTypeFunctions(string functionName, bool ignoreCase)
{
System.Collections.ObjectModel.ReadOnlyCollection functionOverloads;
if (this.FunctionLookUpTable.TryGetValue(functionName, out functionOverloads))
{
functionOverloads = ConvertToCTypeFunctions(functionOverloads);
if (ignoreCase)
{
return functionOverloads;
}
return GetCaseSensitiveFunctions(functionOverloads, functionName);
}
return Helper.EmptyEdmFunctionReadOnlyCollection;
}
private System.Collections.ObjectModel.ReadOnlyCollection ConvertToCTypeFunctions(
System.Collections.ObjectModel.ReadOnlyCollection functionOverloads)
{
List cTypeFunctions =
new List();
foreach (var sTypeFunction in functionOverloads)
{
cTypeFunctions.Add(this._cachedCTypeFunction.Evaluate(sTypeFunction));
}
return cTypeFunctions.AsReadOnly();
}
///
/// Convert the S type function parameters and returnType to C type
///
///
///
private EdmFunction ConvertFunctionParameterToCType(EdmFunction sTypeFunction)
{
if (sTypeFunction.IsFromProviderManifest)
{
return sTypeFunction;
}
FunctionParameter returnParameter = null;
if (sTypeFunction.ReturnParameter != null)
{
TypeUsage edmTypeUsageReturnParameter =
MetadataHelper.ConvertStoreTypeUsageToEdmTypeUsage(sTypeFunction.ReturnParameter.TypeUsage);
returnParameter =
new FunctionParameter(
sTypeFunction.ReturnParameter.Name,
edmTypeUsageReturnParameter,
sTypeFunction.ReturnParameter.GetParameterMode());
}
List parameters = new List();
if (sTypeFunction.Parameters.Count > 0)
{
foreach (var parameter in sTypeFunction.Parameters)
{
TypeUsage edmTypeUsage = MetadataHelper.ConvertStoreTypeUsageToEdmTypeUsage(parameter.TypeUsage);
FunctionParameter edmTypeParameter = new FunctionParameter(parameter.Name, edmTypeUsage, parameter.GetParameterMode());
parameters.Add(edmTypeParameter);
}
}
EdmFunction edmFunction = new EdmFunction(sTypeFunction.Name,
sTypeFunction.NamespaceName,
DataSpace.CSpace,
new EdmFunctionPayload
{
Schema = sTypeFunction.Schema,
StoreFunctionName = sTypeFunction.StoreFunctionNameAttribute,
CommandText = sTypeFunction.CommandTextAttribute,
IsAggregate = sTypeFunction.AggregateAttribute,
IsBuiltIn = sTypeFunction.BuiltInAttribute,
IsNiladic = sTypeFunction.NiladicFunctionAttribute,
IsComposable = sTypeFunction.IsComposableAttribute,
IsFromProviderManifest = sTypeFunction.IsFromProviderManifest,
IsCachedStoreFunction = true,
ReturnParameter = returnParameter,
Parameters = parameters.ToArray(),
ParameterTypeSemantics = sTypeFunction.ParameterTypeSemanticsAttribute,
});
edmFunction.SetReadOnly();
return edmFunction;
}
}//---- ItemCollection
}//----
// 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
- DataRowComparer.cs
- WindowsSspiNegotiation.cs
- DataContractSerializerSection.cs
- HMACSHA512.cs
- DataBoundControl.cs
- InstancePersistenceException.cs
- MailSettingsSection.cs
- BasicDesignerLoader.cs
- OleDbError.cs
- StrongNameUtility.cs
- TraceXPathNavigator.cs
- SwitchCase.cs
- HtmlDocument.cs
- SecurityProtocolCorrelationState.cs
- CodeFieldReferenceExpression.cs
- DotExpr.cs
- SemanticTag.cs
- OdbcFactory.cs
- MenuItemStyle.cs
- TypeBuilder.cs
- FixedSOMPageConstructor.cs
- HttpCacheVary.cs
- X509Utils.cs
- ModelPerspective.cs
- ErasingStroke.cs
- IndexingContentUnit.cs
- WorkflowServiceHostFactory.cs
- LassoSelectionBehavior.cs
- UserControl.cs
- safemediahandle.cs
- BindingMAnagerBase.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- GeneralTransform3DCollection.cs
- AutomationIdentifierGuids.cs
- ExtentCqlBlock.cs
- SrgsElementFactoryCompiler.cs
- IdentityManager.cs
- GeometryCollection.cs
- _Rfc2616CacheValidators.cs
- LassoSelectionBehavior.cs
- OverflowException.cs
- BitmapScalingModeValidation.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- AncestorChangedEventArgs.cs
- HttpHandlersSection.cs
- MailBnfHelper.cs
- WebControlAdapter.cs
- XmlLinkedNode.cs
- HttpModuleAction.cs
- NativeMethods.cs
- XmlWrappingReader.cs
- DocumentReferenceCollection.cs
- Pair.cs
- CollectionViewGroup.cs
- CompilerError.cs
- TableParaClient.cs
- WorkflowStateRollbackService.cs
- ColumnBinding.cs
- ConfigXmlCDataSection.cs
- Main.cs
- AdCreatedEventArgs.cs
- EdmFunction.cs
- DataServiceException.cs
- Invariant.cs
- StorageBasedPackageProperties.cs
- BaseTemplateParser.cs
- dataobject.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- PageRouteHandler.cs
- CodeAssignStatement.cs
- Size.cs
- ResourceWriter.cs
- PasswordRecovery.cs
- EntityKeyElement.cs
- Rules.cs
- PageStatePersister.cs
- ListItem.cs
- RowToFieldTransformer.cs
- KeyEvent.cs
- IsolatedStorageException.cs
- OperandQuery.cs
- BevelBitmapEffect.cs
- ToolStripControlHost.cs
- InputScopeConverter.cs
- RuntimeResourceSet.cs
- SafeRegistryKey.cs
- WebPartDisplayModeCancelEventArgs.cs
- CommonDialog.cs
- GroupedContextMenuStrip.cs
- BinaryFormatter.cs
- LinqDataSource.cs
- Monitor.cs
- infer.cs
- Perspective.cs
- XamlSerializerUtil.cs
- ErrorEventArgs.cs
- EUCJPEncoding.cs
- XhtmlTextWriter.cs
- ObjectFullSpanRewriter.cs
- ColorConvertedBitmap.cs