public CodeTypeReference CreateCollectionType(CodeTypeReference entityType, ExtendedCodeDomTree code)
        {
            Debug.Assert(entityType != null, "Argument entity type could not be null.");

			// Do not create a ByteCollection as this is not compatiable with base64Binary!
			if (entityType.BaseType == typeof(byte).FullName) return entityType;

            CodeTypeReference ctr = new CodeTypeReference(typeof(List<>));

			if (entityType.IsNullableType())
			{
				ctr.TypeArguments.Add(entityType.CloseNullableType());
			}
			else
			{
				ctr.TypeArguments.Add(entityType.BaseType);
			}
            return ctr;
        }
        private static CodeTypeDeclaration GenerateCollectionType(CodeTypeReference entityType)
        {
			string entityTypeName = entityType.IsNullableType()
				? "Nullable" + Type.GetType(entityType.TypeArguments[0].BaseType).Name
				: entityType.BaseType;
            string collectionTypeName = GetCollectionTypeName(entityTypeName);
            CodeTypeDeclaration collectionType = new CodeTypeDeclaration(collectionTypeName);
            CodeTypeReference baseType = new CodeTypeReference(typeof(Collection<>));

			if (entityType.IsNullableType())
			{
				baseType.TypeArguments.Add(entityType.CloseNullableType());
			}
			else
			{
				baseType.TypeArguments.Add(entityType.BaseType);
			}

            collectionType.BaseTypes.Add(baseType);
            return collectionType;
        }