/// <summary>
        /// Creates a many to many object
        /// </summary>
        /// <typeparam name="DataType">Data type</typeparam>
        /// <param name="Expression">Expression</param>
        /// <returns>The many to many object</returns>
        public IListManyToMany <ClassType, DataType> ManyToMany <DataType>(Expression <Func <ClassType, List <DataType> > > Expression) where DataType : class, new()
        {
            Setup();
            ListManyToMany <ClassType, DataType> Return = new ListManyToMany <ClassType, DataType>(Expression, this);

            Properties.Add(Return);
            return(Return);
        }
        /// <summary>
        /// Creates a many to many object
        /// </summary>
        /// <typeparam name="DataType">Data type</typeparam>
        /// <param name="Expression">Expression</param>
        /// <returns>The many to many object</returns>
        public ListManyToMany <ClassType, DataType> ManyToMany <DataType>(System.Linq.Expressions.Expression <Func <ClassType, List <DataType> > > Expression)
            where DataType : class
        {
            if (Expression == null)
            {
                throw new ArgumentNullException(nameof(Expression));
            }
            var ReturnValue = new ListManyToMany <ClassType, DataType>(Expression, this);

            Properties.Add(ReturnValue);
            return(ReturnValue);
        }