public virtual EmptyDerivedFromAbstract ToEmptyDerivedFromAbstract()
        {
            EmptyDerivedFromAbstract that = this as EmptyDerivedFromAbstract;

            if (that != null && this.GetType().IsEquivalentTo(typeof(EmptyDerivedFromAbstract)))
            {
                return(that);
            }

            return(EmptyDerivedFromAbstract.CreateWithIdentity(
                       oneField: Optional.For(this.OneField),
                       identity: this.Identity));
        }