private void CreateFunctionArgument(CodeMemberMethod method, UniqueIdentifierService uniqueIdentifierService, FunctionParameter parameter) { // get type of parameter Type clrType = DetermineParameterType(parameter); // parameters to stored procedures must be nullable CodeTypeReference argumentType = clrType.IsValueType ? TypeReference.NullableForType(clrType) : TypeReference.ForType(clrType); string parameterName = uniqueIdentifierService.AdjustIdentifier(parameter.Name, parameter); CodeParameterDeclarationExpression codeParameter = new CodeParameterDeclarationExpression(argumentType, parameterName); method.Parameters.Add(codeParameter); }
public PropertyTypeReferences(TypeReference typeReference, PrimitiveType primitiveType, CollectionKind collectionKind) { Type type = primitiveType.ClrEquivalentType; if (collectionKind == CollectionKind.None) { _nonNullable = typeReference.ForType(type); if (type.IsValueType) { _nullable = typeReference.NullableForType(type); } else { _nullable = typeReference.ForType(type); } } else { CodeTypeReference primitiveTypeRef = typeReference.ForType(type); CodeTypeReference collectionType = GetCollectionTypeReference(typeReference, primitiveTypeRef, collectionKind); _nonNullable = collectionType; _nullable = collectionType; } }