/// <summary> Initializes the class members</summary>
        private void InitClassMembers()
        {
            _attributeValue = new policyDB.CollectionClasses.AttributeValueCollection(new AttributeValueEntityFactory());
            _attributeValue.SetContainingEntityInfo(this, "Attribute");
            _alwaysFetchAttributeValue = false;
            _alreadyFetchedAttributeValue = false;
            _decisionNode = new policyDB.CollectionClasses.DecisionNodeCollection(new DecisionNodeEntityFactory());
            _decisionNode.SetContainingEntityInfo(this, "Attribute");
            _alwaysFetchDecisionNode = false;
            _alreadyFetchedDecisionNode = false;
            _queryValue = new policyDB.CollectionClasses.QueryValueCollection(new QueryValueEntityFactory());
            _queryValue.SetContainingEntityInfo(this, "Attribute");
            _alwaysFetchQueryValue = false;
            _alreadyFetchedQueryValue = false;
            _decisionNodeCollectionViaDecisionNode = new policyDB.CollectionClasses.DecisionNodeCollection(new DecisionNodeEntityFactory());
            _alwaysFetchDecisionNodeCollectionViaDecisionNode = false;
            _alreadyFetchedDecisionNodeCollectionViaDecisionNode = false;
            _decisionNodeCollectionViaAttributeValue = new policyDB.CollectionClasses.DecisionNodeCollection(new DecisionNodeEntityFactory());
            _alwaysFetchDecisionNodeCollectionViaAttributeValue = false;
            _alreadyFetchedDecisionNodeCollectionViaAttributeValue = false;
            _queryCollectionViaQueryValue = new policyDB.CollectionClasses.QueryCollection(new QueryEntityFactory());
            _alwaysFetchQueryCollectionViaQueryValue = false;
            _alreadyFetchedQueryCollectionViaQueryValue = false;
            _attributeType = null;
            _attributeTypeReturnsNewIfNotFound = true;
            _alwaysFetchAttributeType = false;
            _alreadyFetchedAttributeType = false;
            _context = null;
            _contextReturnsNewIfNotFound = true;
            _alwaysFetchContext = false;
            _alreadyFetchedContext = false;

            PerformDependencyInjection();

            // __LLBLGENPRO_USER_CODE_REGION_START InitClassMembers
            // __LLBLGENPRO_USER_CODE_REGION_END
            OnInitClassMembersComplete();
        }
        /// <summary> Initializes the class members</summary>
        private void InitClassMembers()
        {
            _policy = new policyDB.CollectionClasses.PolicyCollection(new PolicyEntityFactory());
            _policy.SetContainingEntityInfo(this, "Library");
            _alwaysFetchPolicy = false;
            _alreadyFetchedPolicy = false;
            _policyDocument = new policyDB.CollectionClasses.PolicyDocumentCollection(new PolicyDocumentEntityFactory());
            _policyDocument.SetContainingEntityInfo(this, "Library");
            _alwaysFetchPolicyDocument = false;
            _alreadyFetchedPolicyDocument = false;
            _query = new policyDB.CollectionClasses.QueryCollection(new QueryEntityFactory());
            _query.SetContainingEntityInfo(this, "Library");
            _alwaysFetchQuery = false;
            _alreadyFetchedQuery = false;
            _combineModeCollectionViaPolicy = new policyDB.CollectionClasses.CombineModeCollection(new CombineModeEntityFactory());
            _alwaysFetchCombineModeCollectionViaPolicy = false;
            _alreadyFetchedCombineModeCollectionViaPolicy = false;
            _policyLinkCollectionViaPolicyDocument = new policyDB.CollectionClasses.PolicyLinkCollection(new PolicyLinkEntityFactory());
            _alwaysFetchPolicyLinkCollectionViaPolicyDocument = false;
            _alreadyFetchedPolicyLinkCollectionViaPolicyDocument = false;
            _targetCollectionViaPolicy = new policyDB.CollectionClasses.TargetCollection(new TargetEntityFactory());
            _alwaysFetchTargetCollectionViaPolicy = false;
            _alreadyFetchedTargetCollectionViaPolicy = false;

            PerformDependencyInjection();

            // __LLBLGENPRO_USER_CODE_REGION_START InitClassMembers
            // __LLBLGENPRO_USER_CODE_REGION_END
            OnInitClassMembersComplete();
        }
        /// <summary>Private CTor for deserialization</summary>
        /// <param name="info"></param>
        /// <param name="context"></param>
        protected AttributeEntity(SerializationInfo info, StreamingContext context)
            : base(info, context)
        {
            _attributeValue = (policyDB.CollectionClasses.AttributeValueCollection)info.GetValue("_attributeValue", typeof(policyDB.CollectionClasses.AttributeValueCollection));
            _alwaysFetchAttributeValue = info.GetBoolean("_alwaysFetchAttributeValue");
            _alreadyFetchedAttributeValue = info.GetBoolean("_alreadyFetchedAttributeValue");
            _decisionNode = (policyDB.CollectionClasses.DecisionNodeCollection)info.GetValue("_decisionNode", typeof(policyDB.CollectionClasses.DecisionNodeCollection));
            _alwaysFetchDecisionNode = info.GetBoolean("_alwaysFetchDecisionNode");
            _alreadyFetchedDecisionNode = info.GetBoolean("_alreadyFetchedDecisionNode");
            _queryValue = (policyDB.CollectionClasses.QueryValueCollection)info.GetValue("_queryValue", typeof(policyDB.CollectionClasses.QueryValueCollection));
            _alwaysFetchQueryValue = info.GetBoolean("_alwaysFetchQueryValue");
            _alreadyFetchedQueryValue = info.GetBoolean("_alreadyFetchedQueryValue");
            _decisionNodeCollectionViaDecisionNode = (policyDB.CollectionClasses.DecisionNodeCollection)info.GetValue("_decisionNodeCollectionViaDecisionNode", typeof(policyDB.CollectionClasses.DecisionNodeCollection));
            _alwaysFetchDecisionNodeCollectionViaDecisionNode = info.GetBoolean("_alwaysFetchDecisionNodeCollectionViaDecisionNode");
            _alreadyFetchedDecisionNodeCollectionViaDecisionNode = info.GetBoolean("_alreadyFetchedDecisionNodeCollectionViaDecisionNode");
            _decisionNodeCollectionViaAttributeValue = (policyDB.CollectionClasses.DecisionNodeCollection)info.GetValue("_decisionNodeCollectionViaAttributeValue", typeof(policyDB.CollectionClasses.DecisionNodeCollection));
            _alwaysFetchDecisionNodeCollectionViaAttributeValue = info.GetBoolean("_alwaysFetchDecisionNodeCollectionViaAttributeValue");
            _alreadyFetchedDecisionNodeCollectionViaAttributeValue = info.GetBoolean("_alreadyFetchedDecisionNodeCollectionViaAttributeValue");
            _queryCollectionViaQueryValue = (policyDB.CollectionClasses.QueryCollection)info.GetValue("_queryCollectionViaQueryValue", typeof(policyDB.CollectionClasses.QueryCollection));
            _alwaysFetchQueryCollectionViaQueryValue = info.GetBoolean("_alwaysFetchQueryCollectionViaQueryValue");
            _alreadyFetchedQueryCollectionViaQueryValue = info.GetBoolean("_alreadyFetchedQueryCollectionViaQueryValue");
            _attributeType = (AttributeTypeEntity)info.GetValue("_attributeType", typeof(AttributeTypeEntity));
            if(_attributeType!=null)
            {
                _attributeType.AfterSave+=new EventHandler(OnEntityAfterSave);
            }
            _attributeTypeReturnsNewIfNotFound = info.GetBoolean("_attributeTypeReturnsNewIfNotFound");
            _alwaysFetchAttributeType = info.GetBoolean("_alwaysFetchAttributeType");
            _alreadyFetchedAttributeType = info.GetBoolean("_alreadyFetchedAttributeType");
            _context = (ContextEntity)info.GetValue("_context", typeof(ContextEntity));
            if(_context!=null)
            {
                _context.AfterSave+=new EventHandler(OnEntityAfterSave);
            }
            _contextReturnsNewIfNotFound = info.GetBoolean("_contextReturnsNewIfNotFound");
            _alwaysFetchContext = info.GetBoolean("_alwaysFetchContext");
            _alreadyFetchedContext = info.GetBoolean("_alreadyFetchedContext");

            base.FixupDeserialization(FieldInfoProviderSingleton.GetInstance(), PersistenceInfoProviderSingleton.GetInstance());

            // __LLBLGENPRO_USER_CODE_REGION_START DeserializationConstructor
            // __LLBLGENPRO_USER_CODE_REGION_END
        }
        /// <summary>Private CTor for deserialization</summary>
        /// <param name="info"></param>
        /// <param name="context"></param>
        protected LibraryEntity(SerializationInfo info, StreamingContext context)
            : base(info, context)
        {
            _policy = (policyDB.CollectionClasses.PolicyCollection)info.GetValue("_policy", typeof(policyDB.CollectionClasses.PolicyCollection));
            _alwaysFetchPolicy = info.GetBoolean("_alwaysFetchPolicy");
            _alreadyFetchedPolicy = info.GetBoolean("_alreadyFetchedPolicy");
            _policyDocument = (policyDB.CollectionClasses.PolicyDocumentCollection)info.GetValue("_policyDocument", typeof(policyDB.CollectionClasses.PolicyDocumentCollection));
            _alwaysFetchPolicyDocument = info.GetBoolean("_alwaysFetchPolicyDocument");
            _alreadyFetchedPolicyDocument = info.GetBoolean("_alreadyFetchedPolicyDocument");
            _query = (policyDB.CollectionClasses.QueryCollection)info.GetValue("_query", typeof(policyDB.CollectionClasses.QueryCollection));
            _alwaysFetchQuery = info.GetBoolean("_alwaysFetchQuery");
            _alreadyFetchedQuery = info.GetBoolean("_alreadyFetchedQuery");
            _combineModeCollectionViaPolicy = (policyDB.CollectionClasses.CombineModeCollection)info.GetValue("_combineModeCollectionViaPolicy", typeof(policyDB.CollectionClasses.CombineModeCollection));
            _alwaysFetchCombineModeCollectionViaPolicy = info.GetBoolean("_alwaysFetchCombineModeCollectionViaPolicy");
            _alreadyFetchedCombineModeCollectionViaPolicy = info.GetBoolean("_alreadyFetchedCombineModeCollectionViaPolicy");
            _policyLinkCollectionViaPolicyDocument = (policyDB.CollectionClasses.PolicyLinkCollection)info.GetValue("_policyLinkCollectionViaPolicyDocument", typeof(policyDB.CollectionClasses.PolicyLinkCollection));
            _alwaysFetchPolicyLinkCollectionViaPolicyDocument = info.GetBoolean("_alwaysFetchPolicyLinkCollectionViaPolicyDocument");
            _alreadyFetchedPolicyLinkCollectionViaPolicyDocument = info.GetBoolean("_alreadyFetchedPolicyLinkCollectionViaPolicyDocument");
            _targetCollectionViaPolicy = (policyDB.CollectionClasses.TargetCollection)info.GetValue("_targetCollectionViaPolicy", typeof(policyDB.CollectionClasses.TargetCollection));
            _alwaysFetchTargetCollectionViaPolicy = info.GetBoolean("_alwaysFetchTargetCollectionViaPolicy");
            _alreadyFetchedTargetCollectionViaPolicy = info.GetBoolean("_alreadyFetchedTargetCollectionViaPolicy");

            base.FixupDeserialization(FieldInfoProviderSingleton.GetInstance(), PersistenceInfoProviderSingleton.GetInstance());

            // __LLBLGENPRO_USER_CODE_REGION_START DeserializationConstructor
            // __LLBLGENPRO_USER_CODE_REGION_END
        }