protected ModelPrivateSetConstructorMoreDerivedThanPropertyParent(
            CustomEnum parentEnumProperty,
            CustomMultilevelBaseClass customMultilevelBaseClass)
        {
            new { customMultilevelBaseClass }.AsArg().Must().NotBeNull();

            this.ParentEnumProperty        = parentEnumProperty;
            this.CustomMultilevelBaseClass = customMultilevelBaseClass;
        }
 public virtual ModelPrivateSetConstructorMoreDerivedThanPropertyParent DeepCloneWithCustomMultilevelBaseClass(CustomMultilevelBaseClass customMultilevelBaseClass)
 {
     throw new NotImplementedException("This method should be abstract.  It was generated as virtual so that you aren't forced to override it when you create a new model that derives from this model.  It will be overridden in the generated designer file.");
 }
        public override ModelPrivateSetConstructorMoreDerivedThanPropertyParent DeepCloneWithCustomMultilevelBaseClass(CustomMultilevelBaseClass customMultilevelBaseClass)
        {
            var result = new ModelPrivateSetConstructorMoreDerivedThanPropertyChild1(
                this.ParentEnumProperty.DeepClone(),
                (CustomMultilevelChildClass)customMultilevelBaseClass,
                this.ChildReadOnlyCollectionOfStringProperty?.DeepClone());

            return(result);
        }