Beispiel #1
0
        protected virtual IReadOnlyList <TMember> GetQuery()
        {
            var query = db.LoadBy <TMember>(columns, foreignKeys.Select(i => (int)i()).ToArray());

            query.ValueLoadedBeforeRightsCheck += (DbEntity value) =>
            {
                if (toBeIgnoredWhenLoaded == null || !ToBeIgnoredWhenLoaded.Contains(value))
                {
                    beforeRightsCheckAction(value as TMember);
                }
            };
            // Reset the entity after it has been reset. Otherwise changes made to it are submitted to the db...
            query.ValueRemoved += (DbEntity value) =>
            {
                afterRightsCheckAction(value as TMember);
                new UpdateSetVisitor(doReset: true, columnsToReset: null, doProcessChildren: true).Process(value);
            };
            return(query);
        }
Beispiel #2
0
        public bool Remove(TMember item)
        {
            if (!valuesLoaded)
            {
                ToBeIgnoredWhenLoaded.Add(item);
            }

            if (entities != null)
            {
                if (entities.Remove(item))
                {
                    valuesSet.Remove(item);
                    // Remove the root object (e.g. portal.Mandator = null;)
                    setParent(item, null);
                    return(true);
                }
            }

            return(false);
        }