本文整理汇总了C#中TypeUsage.ShallowCopy方法的典型用法代码示例。如果您正苦于以下问题:C# TypeUsage.ShallowCopy方法的具体用法?C# TypeUsage.ShallowCopy怎么用?C# TypeUsage.ShallowCopy使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TypeUsage
的用法示例。
在下文中一共展示了TypeUsage.ShallowCopy方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: UpdateSentinelValuesInFacets
// This will update the sentinel values in the facets if required
private static void UpdateSentinelValuesInFacets(ref TypeUsage typeUsage)
{
// For string and decimal types, replace the sentinel by the max possible value
var primitiveType = (PrimitiveType)typeUsage.EdmType;
if (primitiveType.PrimitiveTypeKind == PrimitiveTypeKind.String
||
primitiveType.PrimitiveTypeKind == PrimitiveTypeKind.Binary)
{
var maxLengthFacet = typeUsage.Facets[DbProviderManifest.MaxLengthFacetName];
if (Helper.IsUnboundedFacetValue(maxLengthFacet))
{
typeUsage = typeUsage.ShallowCopy(
new FacetValues
{
MaxLength = Helper.GetFacet(
primitiveType.FacetDescriptions,
DbProviderManifest.MaxLengthFacetName).MaxValue
});
}
}
}
示例2: TryGetTypeUsageForTerminal
// <summary>
// Determine whether the given CLR type is legal for an ObjectParameter or constant
// DbExpression.
// </summary>
private bool TryGetTypeUsageForTerminal(Expression expression, out TypeUsage typeUsage)
{
DebugCheck.NotNull(expression);
var type = expression.Type;
if (_rootContext.Perspective.TryGetTypeByName(
TypeSystem.GetNonNullableType(type).FullNameWithNesting(),
false, // bIgnoreCase
out typeUsage)
&&
(TypeSemantics.IsScalarType(typeUsage)))
{
if (expression.NodeType == ExpressionType.Convert)
{
type = ((UnaryExpression)expression).Operand.Type;
}
if (type.IsValueType
&& Nullable.GetUnderlyingType(type) == null
&& TypeSemantics.IsNullable(typeUsage))
{
typeUsage = typeUsage.ShallowCopy(
new FacetValues
{
Nullable = false
});
}
return true;
}
typeUsage = null;
return false;
}