本文整理汇总了C#中IEntity.TryGetAdditionalValue方法的典型用法代码示例。如果您正苦于以下问题:C# IEntity.TryGetAdditionalValue方法的具体用法?C# IEntity.TryGetAdditionalValue怎么用?C# IEntity.TryGetAdditionalValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IEntity
的用法示例。
在下文中一共展示了IEntity.TryGetAdditionalValue方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SQL
//.........这里部分代码省略.........
// sbValues.Append("null");
//else
//sbValues.Append(SqlDataFormat(obj[fi.Name], fi)); // 数据
if (!fi.IsIdentity)
{
if (!UseParam(fi))
sbValues.Append(op.FormatValue(fi, entity[fi.Name]));
else
{
var paraname = op.FormatParameterName(fi.ColumnName);
sbValues.Append(paraname);
var dp = op.CreateParameter();
dp.ParameterName = paraname;
//dp.Value = entity[fi.Name] ?? DBNull.Value;
dp.Value = FormatParamValue(fi, entity[fi.Name], op);
dp.IsNullable = fi.IsNullable;
dps.Add(dp);
}
}
else
sbValues.Append(idv);
}
if (sbNames.Length <= 0) return null;
if (dps.Count > 0) parameters = dps.ToArray();
return String.Format("Insert Into {0}({1}) Values({2})", op.FormatName(op.TableName), sbNames, sbValues);
#endregion
case DataObjectMethodType.Update:
#region Update
sbNames = new StringBuilder();
//sbParams = new StringBuilder();
dps = new List<DbParameter>();
// 只读列没有更新操作
foreach (FieldItem fi in op.Fields)
{
if (fi.IsIdentity) continue;
//脏数据判断
if (!entity.Dirtys[fi.Name]) continue;
if (!isFirst)
sbNames.Append(", "); // 加逗号
else
isFirst = false;
var name = op.FormatName(fi.ColumnName);
sbNames.Append(name);
sbNames.Append("=");
//sbNames.Append(SqlDataFormat(obj[fi.Name], fi)); // 数据
if (!UseParam(fi))
{
// 检查累加
Object addvalue = null;
Boolean sign;
if (entity.TryGetAdditionalValue(fi.Name, out addvalue, out sign))
{
if (sign)
sbNames.AppendFormat("{0}+{1}", name, addvalue);
else
sbNames.AppendFormat("{0}-{1}", name, addvalue);
}
else
{
sbNames.Append(op.FormatValue(fi, entity[fi.Name])); // 数据
}
}
else
{
var paraname = op.FormatParameterName(fi.ColumnName);
sbNames.Append(paraname);
var dp = op.CreateParameter();
dp.ParameterName = paraname;
dp.Value = FormatParamValue(fi, entity[fi.Name], op);
dp.IsNullable = fi.IsNullable;
dps.Add(dp);
}
}
if (sbNames.Length <= 0) return null;
sql = DefaultCondition(entity);
if (String.IsNullOrEmpty(sql)) return null;
if (dps.Count > 0) parameters = dps.ToArray();
return String.Format("Update {0} Set {1} Where {2}", op.FormatName(op.TableName), sbNames, sql);
#endregion
case DataObjectMethodType.Delete:
// 标识列作为删除关键字
sql = DefaultCondition(entity);
if (String.IsNullOrEmpty(sql))
return null;
return String.Format("Delete From {0} Where {1}", op.FormatName(op.TableName), sql);
}
return null;
}