本文整理汇总了C#中System.Data.Metadata.Edm.EdmType.GetAssociatedFacetDescriptions方法的典型用法代码示例。如果您正苦于以下问题:C# EdmType.GetAssociatedFacetDescriptions方法的具体用法?C# EdmType.GetAssociatedFacetDescriptions怎么用?C# EdmType.GetAssociatedFacetDescriptions使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Data.Metadata.Edm.EdmType
的用法示例。
在下文中一共展示了EdmType.GetAssociatedFacetDescriptions方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TryGetFacets
private bool TryGetFacets(EdmType edmType, bool complainOnMissingFacet, out Dictionary<string, Facet> calculatedFacets)
{
var noErrors = true;
var defaultFacets = edmType.GetAssociatedFacetDescriptions().ToDictionary(f => f.FacetName, f => f.DefaultValueFacet);
calculatedFacets = new Dictionary<string, Facet>();
foreach (var defaultFacet in defaultFacets.Values)
{
object value;
if (_facetValues.TryGetValue(defaultFacet.Name, out value))
{
// If the facet is a constant facet, then the facet must not be specified in the schema
if (defaultFacet.Description.IsConstant)
{
_element.AddError(
ErrorCode.ConstantFacetSpecifiedInSchema,
EdmSchemaErrorSeverity.Error,
_element,
Strings.ConstantFacetSpecifiedInSchema(defaultFacet.Name, edmType.Name));
noErrors = false;
}
else
{
calculatedFacets.Add(defaultFacet.Name, Facet.Create(defaultFacet.Description, value));
}
// remove the used facet
// so we know which ones we need to add below
_facetValues.Remove(defaultFacet.Name);
}
else if (complainOnMissingFacet && defaultFacet.Description.IsRequired)
{
// Throw missing facet exception
_element.AddError(
ErrorCode.RequiredFacetMissing, EdmSchemaErrorSeverity.Error, Strings.RequiredFacetMissing(
defaultFacet.Name,
edmType.Name));
noErrors = false;
}
else
{
calculatedFacets.Add(defaultFacet.Name, defaultFacet);
}
}
foreach (var value in _facetValues)
{
if (value.Key
== EdmProviderManifest.StoreGeneratedPatternFacetName)
{
var facet = Facet.Create(Converter.StoreGeneratedPatternFacet, value.Value);
calculatedFacets.Add(facet.Name, facet);
}
else if (value.Key
== EdmProviderManifest.ConcurrencyModeFacetName)
{
var facet = Facet.Create(Converter.ConcurrencyModeFacet, value.Value);
calculatedFacets.Add(facet.Name, facet);
}
else if (edmType is PrimitiveType && ((PrimitiveType)edmType).PrimitiveTypeKind == PrimitiveTypeKind.String
&&
value.Key == DbProviderManifest.CollationFacetName)
{
var facet = Facet.Create(Converter.CollationFacet, value.Value);
calculatedFacets.Add(facet.Name, facet);
}
else
{
_element.AddError(
ErrorCode.FacetNotAllowedByType,
EdmSchemaErrorSeverity.Error,
Strings.FacetNotAllowed(value.Key, edmType.Name));
}
}
return noErrors;
}