本文整理汇总了C#中sones.GraphDB.TypeManagement.GraphDBType.HasAttributeIndices方法的典型用法代码示例。如果您正苦于以下问题:C# GraphDBType.HasAttributeIndices方法的具体用法?C# GraphDBType.HasAttributeIndices怎么用?C# GraphDBType.HasAttributeIndices使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类sones.GraphDB.TypeManagement.GraphDBType
的用法示例。
在下文中一共展示了GraphDBType.HasAttributeIndices方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetIndex
/// <summary>
/// Loads an index from a corresponding type.
/// </summary>
/// <param name="myAttribute">The interesting attribute.</param>
/// <param name="dbContext">The TypeManager of the database.</param>
/// <param name="myType">The type of the interesing attribute.</param>
/// <returns></returns>
protected IEnumerable<Tuple<GraphDBType, AAttributeIndex>> GetIndex(TypeAttribute myAttribute, DBContext dbContext, GraphDBType myType, Object myExtraordinary)
{
#region INPUT EXCEPTIONS
if (myType == null || myAttribute == null || dbContext == null)
{
throw new ArgumentNullException();
}
#endregion
if (myExtraordinary == null)
{
#region eventual speedup
//direct match of idx
if (myType.HasAttributeIndices(myAttribute.UUID))
{
yield return new Tuple<GraphDBType, AAttributeIndex>(myType, myType.GetAttributeIndex(dbContext, new IndexKeyDefinition(myAttribute.UUID), null).Value);
}
else
{
//no direct match... lets try the subtypes
foreach (var aSubType in dbContext.DBTypeManager.GetAllSubtypes(myType, true))
{
if (aSubType.HasAttributeIndices(myAttribute.UUID))
{
yield return new Tuple<GraphDBType, AAttributeIndex>(aSubType, aSubType.GetAttributeIndex(dbContext, new IndexKeyDefinition(myAttribute.UUID), null).Value);
}
else
{
yield return new Tuple<GraphDBType, AAttributeIndex>(aSubType, aSubType.GetUUIDIndex(dbContext));
}
}
}
#endregion
}
else
{
var checkResult = myType.HasAttributeIndices(myExtraordinary as IDChainDefinition);
if (checkResult.Failed())
{
throw new GraphDBException(checkResult.IErrors);
}
if (checkResult.Value)
{
yield return new Tuple<GraphDBType, AAttributeIndex>(myType, myType.GetAttributeIndex(dbContext, myExtraordinary as IDChainDefinition).Value);
}
else
{
foreach (var aSubType in dbContext.DBTypeManager.GetAllSubtypes(myType, true))
{
yield return new Tuple<GraphDBType, AAttributeIndex>(aSubType, aSubType.GetUUIDIndex(dbContext));
}
}
}
yield break;
}