コード例 #1
0
        public virtual void InitOnUp(Transaction systemTrans, FieldMetadata fieldMetadata
                                     )
        {
            ObjectContainerBase anyStream = systemTrans.Container();

            if (!anyStream.MaintainsIndices())
            {
                return;
            }
            if (!fieldMetadata.SupportsIndex())
            {
                Indexed(false);
            }
            TernaryBool indexedFlag = _config.GetAsTernaryBool(IndexedKey);

            if (indexedFlag.DefiniteNo())
            {
                fieldMetadata.DropIndex((LocalTransaction)systemTrans);
                return;
            }
            if (UseExistingIndex(systemTrans, fieldMetadata))
            {
                return;
            }
            if (!indexedFlag.DefiniteYes())
            {
                return;
            }
            fieldMetadata.CreateIndex();
        }
コード例 #2
0
ファイル: Config4Field.cs プロジェクト: Galigator/db4o
		public virtual void InitOnUp(Transaction systemTrans, FieldMetadata fieldMetadata
			)
		{
			ObjectContainerBase anyStream = systemTrans.Container();
			if (!anyStream.MaintainsIndices())
			{
				return;
			}
			if (!fieldMetadata.SupportsIndex())
			{
				Indexed(false);
			}
			TernaryBool indexedFlag = _config.GetAsTernaryBool(IndexedKey);
			if (indexedFlag.DefiniteNo())
			{
				fieldMetadata.DropIndex((LocalTransaction)systemTrans);
				return;
			}
			if (UseExistingIndex(systemTrans, fieldMetadata))
			{
				return;
			}
			if (!indexedFlag.DefiniteYes())
			{
				return;
			}
			fieldMetadata.CreateIndex();
		}
コード例 #3
0
ファイル: StoredFieldImpl.cs プロジェクト: pondyond/db4o
 public virtual void CreateIndex()
 {
     lock (Lock())
     {
         _fieldMetadata.CreateIndex();
     }
 }