Esempio n. 1
0
		internal string Delete(Table table,out List<IDbDataParameter> parameters)
		{
            sTable tbl = _pool.Mapping[table.GetType()];
            List<SelectParameter> tmpPars = new List<SelectParameter>();
            List<string> pkeys = new List<string>(tbl.PrimaryKeyFields);
            if (tbl.PrimaryKeyFields.Length == 0)
            {
                foreach (string prop in tbl.Properties)
                {
                    tmpPars.Add(new EqualParameter(prop, table.GetInitialPrimaryValue(prop)));
                }
            }
            else
            {
                foreach (string prop in tbl.Properties)
                {
                    sTableField[] flds = tbl[prop];
                    if (flds.Length > 0)
                    {
                        if (pkeys.Contains(flds[0].Name))
                            tmpPars.Add(new EqualParameter(prop, table.GetInitialPrimaryValue(prop)));
                    }
                }
            }
            return Delete(table.GetType(), tmpPars.ToArray(), out parameters);
		}
Esempio n. 2
0
 internal string Update(Table table, out List<IDbDataParameter> queryParameters)
 {
     queryParameters = new List<IDbDataParameter>();
     if ((table.ChangedFields == null) || (table.ChangedFields.Count == 0))
         return "";
     sTable tbl = _pool.Mapping[table.GetType()];
     List<string> changedFields = table.ChangedFields;
     if (changedFields == null)
         changedFields = new List<string>(tbl.Properties);
     if (changedFields.Count == 0)
         return "";
     Dictionary<string, object> updateFields = new Dictionary<string, object>();
     List<SelectParameter> parameters = new List<SelectParameter>();
     List<string> pkeys = new List<string>(tbl.PrimaryKeyProperties);
     foreach (string prop in tbl.Properties)
     {
         if (changedFields.Contains(prop) && !tbl.ArrayProperties.Contains(prop))
             updateFields.Add(prop, table.GetField(prop));
         if (pkeys.Count == 0 || pkeys.Contains(prop))
             parameters.Add(new EqualParameter(prop, table.GetInitialPrimaryValue(prop)));
     }
     return Update(table.GetType(), updateFields, parameters.ToArray(), out queryParameters);
 }