本文整理汇总了C#中MetadataWorkspace.GetItemCollection方法的典型用法代码示例。如果您正苦于以下问题:C# MetadataWorkspace.GetItemCollection方法的具体用法?C# MetadataWorkspace.GetItemCollection怎么用?C# MetadataWorkspace.GetItemCollection使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MetadataWorkspace
的用法示例。
在下文中一共展示了MetadataWorkspace.GetItemCollection方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DbCommandTree
/// <summary>
/// Initializes a new command tree with a given metadata workspace.
/// </summary>
/// <param name="metadata">The metadata workspace against which the command tree should operate.</param>
/// <param name="dataSpace">The logical 'space' that metadata in the expressions used in this command tree must belong to.</param>
internal DbCommandTree(MetadataWorkspace metadata, DataSpace dataSpace)
{
// Ensure the metadata workspace is non-null
EntityUtil.CheckArgumentNull(metadata, "metadata");
// Ensure that the data space value is valid
if (!DbCommandTree.IsValidDataSpace(dataSpace))
{
throw EntityUtil.Argument(System.Data.Entity.Strings.Cqt_CommandTree_InvalidDataSpace, "dataSpace");
}
//
// Create the tree's metadata workspace and initalize commonly used types.
//
MetadataWorkspace effectiveMetadata = new MetadataWorkspace();
//While EdmItemCollection and StorageitemCollections are required
//ObjectItemCollection may or may not be registered on the workspace yet.
//So register the ObjectItemCollection if it exists.
ItemCollection objectItemCollection;
if (metadata.TryGetItemCollection(DataSpace.OSpace, out objectItemCollection))
{
effectiveMetadata.RegisterItemCollection(objectItemCollection);
}
effectiveMetadata.RegisterItemCollection(metadata.GetItemCollection(DataSpace.CSpace));
effectiveMetadata.RegisterItemCollection(metadata.GetItemCollection(DataSpace.CSSpace));
effectiveMetadata.RegisterItemCollection(metadata.GetItemCollection(DataSpace.SSpace));
this._metadata = effectiveMetadata;
this._dataSpace = dataSpace;
}
示例2: DbCommandTree
/// <summary>
/// Initializes a new command tree with a given metadata workspace.
/// </summary>
/// <param name="metadata">The metadata workspace against which the command tree should operate.</param>
/// <param name="dataSpace">The logical 'space' that metadata in the expressions used in this command tree must belong to.</param>
internal DbCommandTree(MetadataWorkspace metadata, DataSpace dataSpace)
{
// Ensure the metadata workspace is non-null
//Contract.Requires(metadata != null);
// Ensure that the data space value is valid
if (!IsValidDataSpace(dataSpace))
{
throw new ArgumentException(Strings.Cqt_CommandTree_InvalidDataSpace, "dataSpace");
}
//
// Create the tree's metadata workspace and initalize commonly used types.
//
var effectiveMetadata = new MetadataWorkspace();
//While EdmItemCollection and StorageitemCollections are required
//ObjectItemCollection may or may not be registered on the workspace yet.
//So register the ObjectItemCollection if it exists.
ItemCollection objectItemCollection;
if (metadata.TryGetItemCollection(DataSpace.OSpace, out objectItemCollection))
{
effectiveMetadata.RegisterItemCollection(objectItemCollection);
}
effectiveMetadata.RegisterItemCollection(metadata.GetItemCollection(DataSpace.CSpace));
effectiveMetadata.RegisterItemCollection(metadata.GetItemCollection(DataSpace.CSSpace));
effectiveMetadata.RegisterItemCollection(metadata.GetItemCollection(DataSpace.SSpace));
_metadata = effectiveMetadata;
_dataSpace = dataSpace;
}
示例3: Generate
/// <summary>
/// Generates metadata for given item collection.
/// Fetches CLR models from given assembly.
/// </summary>
/// <param name="metadataWorkspace">The metadata workspace.</param>
/// <param name="modelAssembly">The model assembly.</param>
/// <param name="connectionString">The connection string.</param>
/// <returns></returns>
public static Metadata Generate(MetadataWorkspace metadataWorkspace, Assembly modelAssembly, string connectionString) {
metadataWorkspace.RegisterItemCollection(new ObjectItemCollection());
metadataWorkspace.LoadFromAssembly(modelAssembly);
var itemCollection = metadataWorkspace.GetItemCollection(DataSpace.CSpace);
var objectItemCollection = (ObjectItemCollection)metadataWorkspace.GetItemCollection(DataSpace.OSpace);
return Generate(metadataWorkspace, itemCollection, objectItemCollection, modelAssembly, connectionString);
}
示例4: Three_delegates_constructor_uses_given_delegates_and_sets_up_default_o_space_and_oc_mapping
public void Three_delegates_constructor_uses_given_delegates_and_sets_up_default_o_space_and_oc_mapping()
{
var edmItemCollection = new EdmItemCollection(new[] { XDocument.Parse(_csdlV3).CreateReader() });
var storeItemCollection = new StoreItemCollection(new[] { XDocument.Parse(_ssdlV3).CreateReader() });
var storageMappingItemCollection = LoadMsl(edmItemCollection, storeItemCollection);
var workspace = new MetadataWorkspace(
() => edmItemCollection,
() => storeItemCollection,
() => storageMappingItemCollection);
Assert.Same(edmItemCollection, workspace.GetItemCollection(DataSpace.CSpace));
Assert.Same(storeItemCollection, workspace.GetItemCollection(DataSpace.SSpace));
Assert.Same(storageMappingItemCollection, workspace.GetItemCollection(DataSpace.CSSpace));
var objectItemCollection = (ObjectItemCollection)workspace.GetItemCollection(DataSpace.OSpace);
var ocMappingCollection = (DefaultObjectMappingItemCollection)workspace.GetItemCollection(DataSpace.OCSpace);
Assert.Same(objectItemCollection, ocMappingCollection.ObjectItemCollection);
Assert.Same(edmItemCollection, ocMappingCollection.EdmItemCollection);
}
示例5: CreateSpatialDataReader
internal static DbSpatialDataReader CreateSpatialDataReader(MetadataWorkspace workspace, DbDataReader reader)
{
StoreItemCollection storeItemCollection = (StoreItemCollection)workspace.GetItemCollection(DataSpace.SSpace);
DbProviderFactory providerFactory = storeItemCollection.StoreProviderFactory;
Debug.Assert(providerFactory != null, "GetProviderSpatialServices requires provider factory to have been initialized");
DbProviderServices providerServices = DbProviderServices.GetProviderServices(providerFactory);
DbSpatialDataReader result = providerServices.GetSpatialDataReader(reader, storeItemCollection.StoreProviderManifestToken);
Debug.Assert(result != null, "DbProviderServices did not throw ProviderIncompatibleException for null IDbSpatialDataReader");
return result;
}
示例6: GetEntityContainer
public static EntityContainer GetEntityContainer(MetadataWorkspace workspace)
{
// Get the Storage Schema Definition
ItemCollection ssdl = workspace.GetItemCollection(DataSpace.SSpace);
EntityContainer entityContainer = ssdl.OfType<EntityContainer>().FirstOrDefault();
if (entityContainer == null)
{
// Invalid SSDL
throw new InvalidOperationException("The Storage Schema Definition does not contain any EntityContainer");
}
return entityContainer;
}
示例7: CreateSpatialDataReader
internal static DbSpatialDataReader CreateSpatialDataReader(MetadataWorkspace workspace, DbDataReader reader)
{
var storeItemCollection = (StoreItemCollection)workspace.GetItemCollection(DataSpace.SSpace);
var providerFactory = storeItemCollection.ProviderFactory;
Debug.Assert(providerFactory != null, "GetProviderSpatialServices requires provider factory to have been initialized");
var providerServices = providerFactory.GetProviderServices();
var result = providerServices.GetSpatialDataReader(reader, storeItemCollection.ProviderManifestToken);
if (result == null)
{
throw new ProviderIncompatibleException(Strings.ProviderDidNotReturnSpatialServices);
}
return result;
}
示例8: ToMetadataWorkspace
public static MetadataWorkspace ToMetadataWorkspace(this DbDatabaseMapping databaseMapping)
{
DebugCheck.NotNull(databaseMapping);
var itemCollection = new EdmItemCollection(databaseMapping.Model);
var storeItemCollection = new StoreItemCollection(databaseMapping.Database);
var storageMappingItemCollection = databaseMapping.ToStorageMappingItemCollection(itemCollection, storeItemCollection);
var workspace = new MetadataWorkspace(
() => itemCollection,
() => storeItemCollection,
() => storageMappingItemCollection);
new CodeFirstOSpaceLoader().LoadTypes(itemCollection, (ObjectItemCollection)workspace.GetItemCollection(DataSpace.OSpace));
return workspace;
}
示例9: FindEnumReferences
// refs:
// * http://romiller.com/2014/04/08/ef6-1-mapping-between-types-tables/
// * http://blogs.msdn.com/b/appfabriccat/archive/2010/10/22/metadataworkspace-reference-in-wcf-services.aspx
// * http://msdn.microsoft.com/en-us/library/system.data.metadata.edm.dataspace.aspx - describes meaning of OSpace etc
// * http://stackoverflow.com/questions/22999330/mapping-from-iedmentity-to-clr
internal IList<EnumReference> FindEnumReferences(MetadataWorkspace metadataWorkspace)
{
// Get the part of the model that contains info about the actual CLR types
var objectItemCollection = ((ObjectItemCollection)metadataWorkspace.GetItemCollection(DataSpace.OSpace));
// OSpace = Object Space
var entities = metadataWorkspace.GetItems<EntityType>(DataSpace.OSpace);
// find and return all the references to enum types
var references = new List<EnumReference>();
foreach (var entityType in entities)
{
var mappingFragment = FindSchemaMappingFragment(metadataWorkspace, entityType);
// child types in TPH don't get mappings
if (mappingFragment == null)
{
continue;
}
references.AddRange(ProcessEdmProperties(entityType.Properties, mappingFragment, objectItemCollection));
}
return references;
}
示例10: GetClrTypeForCSpaceType
/// <summary>Gets the CLR type mapped to the specified C-Space type.</summary>
/// <param name="workspace">Workspace in which the type is defined.</param>
/// <param name="edmType">C-Space type whose matching clr type needs to be looked up.</param>
/// <returns>The resolved <see cref="Type"/> for the given <paramref name="edmType"/>.</returns>
internal static Type GetClrTypeForCSpaceType(MetadataWorkspace workspace, StructuralType edmType)
{
Debug.Assert(workspace != null, "workspace != null");
Debug.Assert(edmType != null, "edmType != null");
Debug.Assert(
edmType.BuiltInTypeKind == BuiltInTypeKind.EntityType || edmType.BuiltInTypeKind == BuiltInTypeKind.ComplexType,
"Must be entityType or complexType");
StructuralType ospaceType;
if (workspace.TryGetObjectSpaceType(edmType, out ospaceType))
{
ObjectItemCollection objectItemCollection = (ObjectItemCollection)workspace.GetItemCollection(DataSpace.OSpace);
return objectItemCollection.GetClrType(ospaceType);
}
return null;
}
示例11: EdmItemCollection
public void GetItemCollection_on_both_C_and_S_space_using_item_collections_with_inconsistent_versions_throws_MetadataException()
{
var edmItemCollection = new EdmItemCollection(new[] { XDocument.Parse(_csdlV3).CreateReader() });
var storeItemCollection =
new StoreItemCollection(
new[]
{
XDocument.Parse(string.Format(CultureInfo.InvariantCulture, SsdlTemplate, XmlConstants.TargetNamespace_2))
.CreateReader()
});
var workspace = new MetadataWorkspace(
() => edmItemCollection,
() => storeItemCollection,
() => null);
workspace.GetItemCollection(DataSpace.CSpace); // this sets up the MetadataWorkspace's expected schema version as the csdl version i.e. 3.0
Assert.Equal(
Resources.Strings.DifferentSchemaVersionInCollection("StoreItemCollection", 2.0, 3.0),
Assert.Throws<MetadataException>(() => workspace.GetItemCollection(DataSpace.SSpace)).Message);
}
示例12: GetExecutionStrategy
/// <summary>
/// Gets the <see cref="IExecutionStrategy" /> that will be used to execute methods that use the specified connection.
/// Uses MetadataWorkspace for faster lookup.
/// </summary>
/// <param name="connection">The database connection</param>
/// <returns>
/// A new instance of <see cref="ExecutionStrategyBase" />
/// </returns>
internal static IExecutionStrategy GetExecutionStrategy(
DbConnection connection,
MetadataWorkspace metadataWorkspace)
{
var storeMetadata = (StoreItemCollection)metadataWorkspace.GetItemCollection(DataSpace.SSpace);
return GetExecutionStrategy(connection, storeMetadata.StoreProviderFactory);
}
示例13: Item_collections_can_be_registered
private static void Item_collections_can_be_registered(MetadataWorkspace workspace)
{
var edmItemCollection = new EdmItemCollection(new[] { XDocument.Parse(_csdlV3).CreateReader() });
var storeItemCollection = new StoreItemCollection(new[] { XDocument.Parse(_ssdlV3).CreateReader() });
var objectItemCollection = new ObjectItemCollection();
var storageMappingItemCollection = LoadMsl(edmItemCollection, storeItemCollection);
var ocMappingItemCollection = new DefaultObjectMappingItemCollection(edmItemCollection, objectItemCollection);
#pragma warning disable 612,618
workspace.RegisterItemCollection(edmItemCollection);
workspace.RegisterItemCollection(storeItemCollection);
workspace.RegisterItemCollection(objectItemCollection);
workspace.RegisterItemCollection(storageMappingItemCollection);
workspace.RegisterItemCollection(ocMappingItemCollection);
#pragma warning restore 612,618
Assert.Same(edmItemCollection, workspace.GetItemCollection(DataSpace.CSpace));
Assert.Same(storeItemCollection, workspace.GetItemCollection(DataSpace.SSpace));
Assert.Same(storageMappingItemCollection, workspace.GetItemCollection(DataSpace.CSSpace));
Assert.Same(objectItemCollection, workspace.GetItemCollection(DataSpace.OSpace));
Assert.Same(ocMappingItemCollection, workspace.GetItemCollection(DataSpace.OCSpace));
}
示例14: Paths_constructor_loads_collections_from_given_paths_and_sets_up_o_space_and_oc_mapping
public void Paths_constructor_loads_collections_from_given_paths_and_sets_up_o_space_and_oc_mapping()
{
RunTestWithTempMetadata(
_csdlV3, _ssdlV3, _mslV3,
paths =>
{
var workspace = new MetadataWorkspace(paths, new Assembly[0]);
var cSpace = (EdmItemCollection)workspace.GetItemCollection(DataSpace.CSpace);
Assert.NotNull(cSpace.GetType("Entity", "AdventureWorksModel"));
var sSpace = (StoreItemCollection)workspace.GetItemCollection(DataSpace.SSpace);
Assert.NotNull(sSpace.GetType("Entities", "AdventureWorksModel.Store"));
var csMapping = (StorageMappingItemCollection)workspace.GetItemCollection(DataSpace.CSSpace);
Assert.Same(cSpace, csMapping.EdmItemCollection);
Assert.Same(sSpace, csMapping.StoreItemCollection);
var oSpace = (ObjectItemCollection)workspace.GetItemCollection(DataSpace.OSpace);
var ocMapping = (DefaultObjectMappingItemCollection)workspace.GetItemCollection(DataSpace.OCSpace);
Assert.Same(oSpace, ocMapping.ObjectItemCollection);
Assert.Same(cSpace, ocMapping.EdmItemCollection);
});
}
示例15: SerializedAddGeneratedViewsInEntityViewContainer
/// <summary>
/// this method do the following check on the generated views in the EntityViewContainer,
/// then add those views all at once to the dictionary
/// 1. there should be one storeageEntityContainerMapping that has the same h
/// C side and S side names as the EnittyViewcontainer
/// 2. Generate the hash for the storageEntityContainerMapping in the MM closure,
/// and this hash should be the same in EntityViewContainer
/// 3. Generate the hash for all of the view text in the EntityViewContainer and
/// this hash should be the same as the stored on in the EntityViewContainer
/// </summary>
/// <param name="entityViewContainer"> </param>
private void SerializedAddGeneratedViewsInEntityViewContainer(
MetadataWorkspace workspace, EntityViewContainer entityViewContainer,
Dictionary<EntitySetBase, GeneratedView> extentMappingViews)
{
StorageEntityContainerMapping storageEntityContainerMapping;
// first check
if (!TryGetCorrespondingStorageEntityContainerMapping(
entityViewContainer,
workspace.GetItemCollection(DataSpace.CSSpace).GetItems<StorageEntityContainerMapping>(),
out storageEntityContainerMapping))
{
return;
}
// second check
if (!SerializedVerifyHashOverMmClosure(storageEntityContainerMapping, entityViewContainer))
{
throw new MappingException(
Strings.ViewGen_HashOnMappingClosure_Not_Matching(entityViewContainer.EdmEntityContainerName));
}
SerializedAddGeneratedViews(workspace, entityViewContainer, extentMappingViews);
}