Esempio n. 1
0
        internal static string GetSqlTypeFromObject(object o, out string xmlFormattedObject)
        {
            xmlFormattedObject = null;
            if (o == null)
            {
                o = "";
            }
            string name = o.GetType().Name;
            string str  = name;

            if (name != null)
            {
                switch (str)
                {
                case "Int32":
                {
                    xmlFormattedObject = XmlConvert.ToString((int)o);
                    return("int");
                }

                case "Int64":
                {
                    xmlFormattedObject = XmlConvert.ToString((long)o);
                    return("bigint");
                }

                case "DateTime":
                {
                    DateTime sqlBoundedDateTime = DevelopmentStorageDbDataContext.GetSqlBoundedDateTime((DateTime)o);
                    xmlFormattedObject = XmlConvert.ToString(sqlBoundedDateTime, XmlDateTimeSerializationMode.Utc);
                    return("datetime");
                }

                case "Guid":
                {
                    xmlFormattedObject = XmlConvert.ToString((Guid)o);
                    return("uniqueidentifier");
                }

                case "Double":
                {
                    xmlFormattedObject = XmlConvert.ToString((double)o);
                    return("float(53)");
                }

                case "Boolean":
                {
                    xmlFormattedObject = ((bool)o ? "1" : "0");
                    return("bit");
                }

                case "Byte[]":
                {
                    if ((int)(o as byte[]).Length > 65536)
                    {
                        throw new TableServiceGeneralException(TableServiceError.PropertyValueTooLarge, null);
                    }
                    xmlFormattedObject = Convert.ToBase64String((byte[])o);
                    return("varbinary(max)");
                }

                case "String":
                {
                    if (2 * o.ToString().Length > 65536)
                    {
                        throw new TableServiceGeneralException(TableServiceError.PropertyValueTooLarge, null);
                    }
                    xmlFormattedObject = DevelopmentStorageDbDataContext.EncodeDataString(o.ToString());
                    return("nvarchar(max)");
                }
                }
            }
            throw new NotImplementedException();
        }