本文整理汇总了C#中Microsoft.OData.Service.Providers.ResourceType.GetAnnotation方法的典型用法代码示例。如果您正苦于以下问题:C# ResourceType.GetAnnotation方法的具体用法?C# ResourceType.GetAnnotation怎么用?C# ResourceType.GetAnnotation使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.OData.Service.Providers.ResourceType
的用法示例。
在下文中一共展示了ResourceType.GetAnnotation方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AddResourceSet
/// <summary>Adds a resource set to the metadata definition.</summary>
/// <param name="name">The name of the resource set to add.</param>
/// <param name="entityType">The type of entities in the resource set.</param>
/// <returns>The newly created resource set.</returns>
public ResourceSet AddResourceSet(string name, ResourceType entityType)
{
if (entityType.ResourceTypeKind != ResourceTypeKind.EntityType)
{
throw new ArgumentException("The resource type specified as the base type of a resource set is not an entity type.");
}
ResourceSet resourceSet = new ResourceSet(name, entityType);
entityType.GetAnnotation().ResourceSet = resourceSet;
this.resourceSets.Add(name, resourceSet);
return resourceSet;
}
示例2: AddReferenceProperty
/// <summary>Helper method to add a reference property.</summary>
/// <param name="resourceType">The resource type to add the property to.</param>
/// <param name="name">The name of the property to add.</param>
/// <param name="targetResourceSet">The resource set the resource reference property points to.</param>
/// <param name="targetResourceType">The resource type the resource set reference property points to.</param>
/// <param name="resourceSetReference">true if the property should be a resource set reference, false if it should be resource reference.</param>
private void AddReferenceProperty(ResourceType resourceType, string name, ResourceSet targetResourceSet, ResourceType targetResourceType, bool resourceSetReference)
{
PropertyInfo propertyInfo = resourceType.InstanceType.GetProperty(name);
targetResourceType = targetResourceType ?? targetResourceSet.ResourceType;
ResourceProperty property = AddResourceProperty(
resourceType,
name,
resourceSetReference ? ResourcePropertyKind.ResourceSetReference : ResourcePropertyKind.ResourceReference,
targetResourceType,
propertyInfo);
// We don't support MEST, that is having two resource sets with the same resource type, so we can determine
// the resource set from the resource type. That also means that the property can never point to different resource sets
// so we can precreate the ResourceAssociationSet for this property right here as we have all the information.
property.GetAnnotation().ResourceAssociationSet = () =>
{
ResourceSet sourceResourceSet = resourceType.GetAnnotation().ResourceSet;
ResourceType baseResourceType = resourceType.BaseType;
while (sourceResourceSet == null && baseResourceType != null)
{
sourceResourceSet = baseResourceType.GetAnnotation().ResourceSet;
baseResourceType = baseResourceType.BaseType;
}
return new ResourceAssociationSet(
resourceType.Name + "_" + name + "_" + targetResourceSet.Name,
new ResourceAssociationSetEnd(sourceResourceSet, resourceType, property),
new ResourceAssociationSetEnd(targetResourceSet, targetResourceType, null));
};
}