public async Task <int> Delete <T>(string propertyName, long propertyValue) where T : class
        {
            IEntityType entityType = DbContextExtension.GetEntityType <T>(dbcontext);

            if (entityType != null)
            {
                //string tableName = entityType.Relational().TableName;
                string tableName = entityType.GetTableName();
                return(await this.ExecuteBySql(DbContextExtension.DeleteSql(tableName, propertyName, propertyValue)));
            }
            return(-1);
        }
        public async Task <int> ExecuteByProc(string procName, params DbParameter[] dbParameter)
        {
            if (dbTransaction == null)
            {
                return(await dbcontext.Database.ExecuteSqlCommandAsync(DbContextExtension.BuilderProc(procName, dbParameter), dbParameter));
            }
            else
            {
                await dbcontext.Database.ExecuteSqlCommandAsync(DbContextExtension.BuilderProc(procName, dbParameter), dbParameter);

                return(dbTransaction == null ? await this.Commit() : 0);
            }
        }