/// <summary>
        /// Saves or updates the entity without its children.
        /// </summary>
        ///
        /// <param name="entity">
        /// Entity to save or update.
        /// </param>
        ///
        /// <param name="idGenerator">
        /// ObjectIDGenerator instance to generate IDs for objects.
        /// </param>
        ///
        /// <param name="options">
        /// Optional options.
        /// </param>
        ///
        /// <returns>
        /// The number of affected rows.
        /// </returns>
        internal int PersistWithChildren(ref VahapYigit.Test.Models.UserRole entity, ObjectIDGenerator idGenerator, SaveOptions options = null)
        {
            int rowCount = 0;

            if (entity.User != null && idGenerator.HasId(entity.User, withForceId: true) == 0)
            {
                using (var db = new UserCrud(base.UserContext))
                {
                    var child = entity.User;

                    rowCount += db.PersistWithChildren(ref child, idGenerator, options);

                    entity.IdUser = child.Id;
                }
            }

            if (entity.Role != null && idGenerator.HasId(entity.Role, withForceId: true) == 0)
            {
                using (var db = new RoleCrud(base.UserContext))
                {
                    var child = entity.Role;

                    rowCount += db.PersistWithChildren(ref child, idGenerator, options);

                    entity.IdRole = child.Id;
                }
            }

            rowCount += this.Persist(ref entity, options);

            return(rowCount);
        }
        /// <summary>
        /// Loads the Role entity associated to the current instance (entity.Role property).
        /// </summary>
        ///
        /// <param name="entity">
        /// The target entity.
        /// </param>
        public void LoadRole(ref VahapYigit.Test.Models.UserRole entity)
        {
            if (entity != null)
            {
                var options = new SearchOptions();
                options.Filters.Add(VahapYigit.Test.Models.Role.ColumnNames.Id, FilterOperator.Equals, entity.IdRole);

                using (var db = new RoleCrud(base.UserContext))
                {
                    var collection = db.Search(ref options);
                    if (collection.Count == 1)
                    {
                        entity.Role = collection[0];
                        entity.Role.UserRoleCollection.Add(entity);
                    }
                }
            }
        }