public static IDomainIncludable <TEntity, TProperty> DomainInclude <TEntity, TProperty>(
            this IDomainIncludable <TEntity> source,
            Expression <Func <TEntity, TProperty> > navigationPropertyPath)
        {
            IRootDomainIncludable <TEntity> root = source.GetRoot();

            return(new DomainIncludable <TEntity, TProperty>(root, DomainIncludeType.Include, navigationPropertyPath));
        }
        public static IDomainIncludable <TEntity, TProperty> DomainEnumerableThenInclude <TEntity, TPreviousProperty, TProperty>(
            this IDomainIncludable <TEntity, IEnumerable <TPreviousProperty> > source,
            Expression <Func <TPreviousProperty, TProperty> > navigationPropertyPath)
            where TEntity : class
        {
            IRootDomainIncludable <TEntity> root = source.GetRoot();

            return(new EnumerableDomainIncludable <TEntity, TPreviousProperty, TProperty>(root, DomainIncludeType.ThenInclude, navigationPropertyPath));
        }