本文整理汇总了C#中tgDynamicQuerySerializable.GetTypeMap方法的典型用法代码示例。如果您正苦于以下问题:C# tgDynamicQuerySerializable.GetTypeMap方法的具体用法?C# tgDynamicQuerySerializable.GetTypeMap怎么用?C# tgDynamicQuerySerializable.GetTypeMap使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tgDynamicQuerySerializable
的用法示例。
在下文中一共展示了tgDynamicQuerySerializable.GetTypeMap方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetParameters
static public Dictionary<string, SqlParameter> GetParameters(tgDynamicQuerySerializable query)
{
tgMetadata meta = null;
lock (parameterCache)
{
meta = query;
if (!parameterCache.ContainsKey(meta.DataID))
{
// The Parameters for this Table haven't been cached yet, this is a one time operation
Dictionary<string, SqlParameter> types = new Dictionary<string, SqlParameter>();
SqlParameter param1;
foreach (tgColumnMetadata col in meta.Columns)
{
tgTypeMap typeMap = meta.GetTypeMap(col.PropertyName);
if (typeMap != null)
{
string nativeType = typeMap.NativeType;
SqlDbType dbType = Cache.NativeTypeToDbType(nativeType);
param1 = new SqlParameter(Delimiters.Param + col.PropertyName, dbType, 0, col.PropertyName);
param1.SourceColumn = col.Name;
switch (dbType)
{
case SqlDbType.BigInt:
case SqlDbType.Decimal:
case SqlDbType.Float:
case SqlDbType.Int:
case SqlDbType.Money:
case SqlDbType.Real:
case SqlDbType.SmallMoney:
case SqlDbType.TinyInt:
case SqlDbType.SmallInt:
param1.Size = (int)col.CharacterMaxLength;
param1.Precision = (byte)col.NumericPrecision;
param1.Scale = (byte)col.NumericScale;
break;
case SqlDbType.DateTime:
param1.Precision = 23;
param1.Scale = 3;
break;
case SqlDbType.SmallDateTime:
param1.Precision = 16;
break;
case SqlDbType.Udt:
SetUdtTypeNameToAvoidMonoError(param1, typeMap);
break;
}
types[col.Name] = param1;
}
}
parameterCache[meta.DataID] = types;
}
}
return parameterCache[meta.DataID];
}