/// <summary>
 /// new SqlParameter("@tableName",TableName)
 /// </summary>
 /// <typeparam name="TResult"></typeparam>
 /// <param name="sql"></param>
 /// <param name="parameters"></param>
 /// <returns></returns>
 /// <summary>
 /// new SqlParameter("@tableName",TableName)
 /// </summary>
 /// <typeparam name="TResult"></typeparam>
 /// <param name="sql"></param>
 /// <param name="parameters"></param>
 /// <returns></returns>
 public virtual List <TEntity> RunProc(string sql, params SqlParameter[] parameters)
 {
     foreach (var item in parameters)
     {
         if ((item as DbParameter).Value == null)
         {
             (item as DbParameter).Value = DBNull.Value;
         }
     }
     if (parameters != null && parameters.Count() > 0)
     {
         sql = sql + " " + string.Join(",",
                                       parameters.
                                       Select(x => ((DbParameter)x).ParameterName + (((DbParameter)x).Direction.ToString() == "Output" ? " Output" : "")));
     }
     return(DBSet.FromSql($"{sql}", parameters).ToList());
 }
 public virtual List <TEntity> FromSql(string sql, params SqlParameter[] sqlParameters)
 {
     return(DBSet.FromSql(sql, sqlParameters).ToList());
 }