本文整理匯總了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;
}