{
try
{
Delete(obj);
}
catch
{
MakeSureExistTableAndColumns();
Delete(obj);
}
}
public static void Delete(T obj)
{
using (SqlConnection conn = SqlHelper.GetSqlConnection())
{
SqlTransaction trans = conn.BeginTransaction();
try
{
Delete(obj, trans);
trans.Commit();
}
catch (Exception ex)
{
trans.Rollback();
throw ex;
}
}
}
public static void Delete(T obj, SqlTransaction trans)
{
List<SqlParameter> parms = new List<SqlParameter>();
string deleteSql = " DELETE FROM [dbo].["+CurrentType.Name+"] WHERE ";
bool isFirst=true;
foreach (PropertyInfo info in Attributes)
{
foreach (object customAttribute in info.GetCustomAttributes(true))
{
if (customAttribute is IDAttribute)
{
SqlParameter sqlParm=new SqlParameter("@"+info.Name,GetDbType(info));
sqlParm.Value = GetValueByType(info, obj); //info.GetValue(obj, null);
parms.Add(sqlParm);
if (isFirst) { isFirst = false; } else { deleteSql+=" AND "; }
deleteSql += info.Name + "=@" + info.Name;
}
}
}
SqlHelper.ExecuteNonQuery(trans, CommandType.Text, deleteSql, parms.ToArray());
}

浙公网安备 33010602011771号