/// <summary>Private CTor for deserialization</summary>
        /// <param name="info"></param>
        /// <param name="context"></param>
        protected DonorEntity(SerializationInfo info, StreamingContext context)
            : base(info, context)
        {
            _auctionEventDonor = (Auction.Entities.CollectionClasses.AuctionEventDonorCollection)info.GetValue("_auctionEventDonor", typeof(Auction.Entities.CollectionClasses.AuctionEventDonorCollection));
            _alwaysFetchAuctionEventDonor = info.GetBoolean("_alwaysFetchAuctionEventDonor");
            _alreadyFetchedAuctionEventDonor = info.GetBoolean("_alreadyFetchedAuctionEventDonor");
            _donation = (Auction.Entities.CollectionClasses.DonationCollection)info.GetValue("_donation", typeof(Auction.Entities.CollectionClasses.DonationCollection));
            _alwaysFetchDonation = info.GetBoolean("_alwaysFetchDonation");
            _alreadyFetchedDonation = info.GetBoolean("_alreadyFetchedDonation");
            _auctionEventCollectionViaDonation = (Auction.Entities.CollectionClasses.AuctionEventCollection)info.GetValue("_auctionEventCollectionViaDonation", typeof(Auction.Entities.CollectionClasses.AuctionEventCollection));
            _alwaysFetchAuctionEventCollectionViaDonation = info.GetBoolean("_alwaysFetchAuctionEventCollectionViaDonation");
            _alreadyFetchedAuctionEventCollectionViaDonation = info.GetBoolean("_alreadyFetchedAuctionEventCollectionViaDonation");
            _auctionEventCollectionViaAuctionEventDonor = (Auction.Entities.CollectionClasses.AuctionEventCollection)info.GetValue("_auctionEventCollectionViaAuctionEventDonor", typeof(Auction.Entities.CollectionClasses.AuctionEventCollection));
            _alwaysFetchAuctionEventCollectionViaAuctionEventDonor = info.GetBoolean("_alwaysFetchAuctionEventCollectionViaAuctionEventDonor");
            _alreadyFetchedAuctionEventCollectionViaAuctionEventDonor = info.GetBoolean("_alreadyFetchedAuctionEventCollectionViaAuctionEventDonor");
            _packageCollectionViaDonation = (Auction.Entities.CollectionClasses.PackageCollection)info.GetValue("_packageCollectionViaDonation", typeof(Auction.Entities.CollectionClasses.PackageCollection));
            _alwaysFetchPackageCollectionViaDonation = info.GetBoolean("_alwaysFetchPackageCollectionViaDonation");
            _alreadyFetchedPackageCollectionViaDonation = info.GetBoolean("_alreadyFetchedPackageCollectionViaDonation");
            _userCollectionViaDonation_ = (Auction.Entities.CollectionClasses.UserCollection)info.GetValue("_userCollectionViaDonation_", typeof(Auction.Entities.CollectionClasses.UserCollection));
            _alwaysFetchUserCollectionViaDonation_ = info.GetBoolean("_alwaysFetchUserCollectionViaDonation_");
            _alreadyFetchedUserCollectionViaDonation_ = info.GetBoolean("_alreadyFetchedUserCollectionViaDonation_");
            _userCollectionViaDonation = (Auction.Entities.CollectionClasses.UserCollection)info.GetValue("_userCollectionViaDonation", typeof(Auction.Entities.CollectionClasses.UserCollection));
            _alwaysFetchUserCollectionViaDonation = info.GetBoolean("_alwaysFetchUserCollectionViaDonation");
            _alreadyFetchedUserCollectionViaDonation = info.GetBoolean("_alreadyFetchedUserCollectionViaDonation");
            _account = (AccountEntity)info.GetValue("_account", typeof(AccountEntity));
            if(_account!=null)
            {
                _account.AfterSave+=new EventHandler(OnEntityAfterSave);
            }
            _accountReturnsNewIfNotFound = info.GetBoolean("_accountReturnsNewIfNotFound");
            _alwaysFetchAccount = info.GetBoolean("_alwaysFetchAccount");
            _alreadyFetchedAccount = info.GetBoolean("_alreadyFetchedAccount");
            _user = (UserEntity)info.GetValue("_user", typeof(UserEntity));
            if(_user!=null)
            {
                _user.AfterSave+=new EventHandler(OnEntityAfterSave);
            }
            _userReturnsNewIfNotFound = info.GetBoolean("_userReturnsNewIfNotFound");
            _alwaysFetchUser = info.GetBoolean("_alwaysFetchUser");
            _alreadyFetchedUser = info.GetBoolean("_alreadyFetchedUser");
            _user_ = (UserEntity)info.GetValue("_user_", typeof(UserEntity));
            if(_user_!=null)
            {
                _user_.AfterSave+=new EventHandler(OnEntityAfterSave);
            }
            _user_ReturnsNewIfNotFound = info.GetBoolean("_user_ReturnsNewIfNotFound");
            _alwaysFetchUser_ = info.GetBoolean("_alwaysFetchUser_");
            _alreadyFetchedUser_ = info.GetBoolean("_alreadyFetchedUser_");

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

            // __LLBLGENPRO_USER_CODE_REGION_START DeserializationConstructor
            // __LLBLGENPRO_USER_CODE_REGION_END
        }
        /// <summary> Initializes the class members</summary>
        private void InitClassMembers()
        {
            _auctionEventDonor = new Auction.Entities.CollectionClasses.AuctionEventDonorCollection(new AuctionEventDonorEntityFactory());
            _auctionEventDonor.SetContainingEntityInfo(this, "Donor");
            _alwaysFetchAuctionEventDonor = false;
            _alreadyFetchedAuctionEventDonor = false;
            _donation = new Auction.Entities.CollectionClasses.DonationCollection(new DonationEntityFactory());
            _donation.SetContainingEntityInfo(this, "Donor");
            _alwaysFetchDonation = false;
            _alreadyFetchedDonation = false;
            _auctionEventCollectionViaDonation = new Auction.Entities.CollectionClasses.AuctionEventCollection(new AuctionEventEntityFactory());
            _alwaysFetchAuctionEventCollectionViaDonation = false;
            _alreadyFetchedAuctionEventCollectionViaDonation = false;
            _auctionEventCollectionViaAuctionEventDonor = new Auction.Entities.CollectionClasses.AuctionEventCollection(new AuctionEventEntityFactory());
            _alwaysFetchAuctionEventCollectionViaAuctionEventDonor = false;
            _alreadyFetchedAuctionEventCollectionViaAuctionEventDonor = false;
            _packageCollectionViaDonation = new Auction.Entities.CollectionClasses.PackageCollection(new PackageEntityFactory());
            _alwaysFetchPackageCollectionViaDonation = false;
            _alreadyFetchedPackageCollectionViaDonation = false;
            _userCollectionViaDonation_ = new Auction.Entities.CollectionClasses.UserCollection(new UserEntityFactory());
            _alwaysFetchUserCollectionViaDonation_ = false;
            _alreadyFetchedUserCollectionViaDonation_ = false;
            _userCollectionViaDonation = new Auction.Entities.CollectionClasses.UserCollection(new UserEntityFactory());
            _alwaysFetchUserCollectionViaDonation = false;
            _alreadyFetchedUserCollectionViaDonation = false;
            _account = null;
            _accountReturnsNewIfNotFound = true;
            _alwaysFetchAccount = false;
            _alreadyFetchedAccount = false;
            _user = null;
            _userReturnsNewIfNotFound = true;
            _alwaysFetchUser = false;
            _alreadyFetchedUser = false;
            _user_ = null;
            _user_ReturnsNewIfNotFound = true;
            _alwaysFetchUser_ = false;
            _alreadyFetchedUser_ = false;

            PerformDependencyInjection();

            // __LLBLGENPRO_USER_CODE_REGION_START InitClassMembers
            // __LLBLGENPRO_USER_CODE_REGION_END

            OnInitClassMembersComplete();
        }
        /// <summary> Initializes the class members</summary>
        private void InitClassMembers()
        {
            _auctionEventDonor = new Auction.Entities.CollectionClasses.AuctionEventDonorCollection(new AuctionEventDonorEntityFactory());
            _auctionEventDonor.SetContainingEntityInfo(this, "AuctionEvent");
            _alwaysFetchAuctionEventDonor = false;
            _alreadyFetchedAuctionEventDonor = false;
            _bidder = new Auction.Entities.CollectionClasses.BidderCollection(new BidderEntityFactory());
            _bidder.SetContainingEntityInfo(this, "AuctionEvent");
            _alwaysFetchBidder = false;
            _alreadyFetchedBidder = false;
            _donation = new Auction.Entities.CollectionClasses.DonationCollection(new DonationEntityFactory());
            _donation.SetContainingEntityInfo(this, "AuctionEvent");
            _alwaysFetchDonation = false;
            _alreadyFetchedDonation = false;
            _expense = new Auction.Entities.CollectionClasses.ExpenseCollection(new ExpenseEntityFactory());
            _expense.SetContainingEntityInfo(this, "AuctionEvent");
            _alwaysFetchExpense = false;
            _alreadyFetchedExpense = false;
            _package = new Auction.Entities.CollectionClasses.PackageCollection(new PackageEntityFactory());
            _package.SetContainingEntityInfo(this, "AuctionEvent");
            _alwaysFetchPackage = false;
            _alreadyFetchedPackage = false;
            _raffle = new Auction.Entities.CollectionClasses.RaffleCollection(new RaffleEntityFactory());
            _raffle.SetContainingEntityInfo(this, "AuctionEvent");
            _alwaysFetchRaffle = false;
            _alreadyFetchedRaffle = false;
            _bidderCollectionViaPackage = new Auction.Entities.CollectionClasses.BidderCollection(new BidderEntityFactory());
            _alwaysFetchBidderCollectionViaPackage = false;
            _alreadyFetchedBidderCollectionViaPackage = false;
            _categoryCollectionViaPackage = new Auction.Entities.CollectionClasses.CategoryCollection(new CategoryEntityFactory());
            _alwaysFetchCategoryCollectionViaPackage = false;
            _alreadyFetchedCategoryCollectionViaPackage = false;
            _donorCollectionViaDonation = new Auction.Entities.CollectionClasses.DonorCollection(new DonorEntityFactory());
            _alwaysFetchDonorCollectionViaDonation = false;
            _alreadyFetchedDonorCollectionViaDonation = false;
            _donorCollectionViaAuctionEventDonor = new Auction.Entities.CollectionClasses.DonorCollection(new DonorEntityFactory());
            _alwaysFetchDonorCollectionViaAuctionEventDonor = false;
            _alreadyFetchedDonorCollectionViaAuctionEventDonor = false;
            _packageCollectionViaDonation = new Auction.Entities.CollectionClasses.PackageCollection(new PackageEntityFactory());
            _alwaysFetchPackageCollectionViaDonation = false;
            _alreadyFetchedPackageCollectionViaDonation = false;
            _userCollectionViaDonation = new Auction.Entities.CollectionClasses.UserCollection(new UserEntityFactory());
            _alwaysFetchUserCollectionViaDonation = false;
            _alreadyFetchedUserCollectionViaDonation = false;
            _userCollectionViaDonation_ = new Auction.Entities.CollectionClasses.UserCollection(new UserEntityFactory());
            _alwaysFetchUserCollectionViaDonation_ = false;
            _alreadyFetchedUserCollectionViaDonation_ = false;
            _userCollectionViaExpense = new Auction.Entities.CollectionClasses.UserCollection(new UserEntityFactory());
            _alwaysFetchUserCollectionViaExpense = false;
            _alreadyFetchedUserCollectionViaExpense = false;
            _userCollectionViaExpense_ = new Auction.Entities.CollectionClasses.UserCollection(new UserEntityFactory());
            _alwaysFetchUserCollectionViaExpense_ = false;
            _alreadyFetchedUserCollectionViaExpense_ = false;
            _userCollectionViaPackage__ = new Auction.Entities.CollectionClasses.UserCollection(new UserEntityFactory());
            _alwaysFetchUserCollectionViaPackage__ = false;
            _alreadyFetchedUserCollectionViaPackage__ = false;
            _userCollectionViaBidder = new Auction.Entities.CollectionClasses.UserCollection(new UserEntityFactory());
            _alwaysFetchUserCollectionViaBidder = false;
            _alreadyFetchedUserCollectionViaBidder = false;
            _userCollectionViaRaffle_ = new Auction.Entities.CollectionClasses.UserCollection(new UserEntityFactory());
            _alwaysFetchUserCollectionViaRaffle_ = false;
            _alreadyFetchedUserCollectionViaRaffle_ = false;
            _userCollectionViaRaffle = new Auction.Entities.CollectionClasses.UserCollection(new UserEntityFactory());
            _alwaysFetchUserCollectionViaRaffle = false;
            _alreadyFetchedUserCollectionViaRaffle = false;
            _userCollectionViaPackage_ = new Auction.Entities.CollectionClasses.UserCollection(new UserEntityFactory());
            _alwaysFetchUserCollectionViaPackage_ = false;
            _alreadyFetchedUserCollectionViaPackage_ = false;
            _userCollectionViaPackage = new Auction.Entities.CollectionClasses.UserCollection(new UserEntityFactory());
            _alwaysFetchUserCollectionViaPackage = false;
            _alreadyFetchedUserCollectionViaPackage = false;
            _userCollectionViaBidder_ = new Auction.Entities.CollectionClasses.UserCollection(new UserEntityFactory());
            _alwaysFetchUserCollectionViaBidder_ = false;
            _alreadyFetchedUserCollectionViaBidder_ = false;
            _account = null;
            _accountReturnsNewIfNotFound = true;
            _alwaysFetchAccount = false;
            _alreadyFetchedAccount = false;
            _user = null;
            _userReturnsNewIfNotFound = true;
            _alwaysFetchUser = false;
            _alreadyFetchedUser = false;
            _user_ = null;
            _user_ReturnsNewIfNotFound = true;
            _alwaysFetchUser_ = false;
            _alreadyFetchedUser_ = false;

            PerformDependencyInjection();

            // __LLBLGENPRO_USER_CODE_REGION_START InitClassMembers
            // __LLBLGENPRO_USER_CODE_REGION_END

            OnInitClassMembersComplete();
        }