Mercurial > pub > bltoolkit
view Tools/CodeGenerator/Convert.xml @ 0:f990fcb411a9
Копия текущей версии из github
author | cin |
---|---|
date | Thu, 27 Mar 2014 21:46:09 +0400 |
parents | |
children |
line wrap: on
line source
<?xml version="1.0" encoding="utf-8"?> <code transformer="Convert.xslt"> <<<<<<<<<<<<<<< This crap should not be used anymore. <using namespace="System"/> <using namespace="System.Data.SqlTypes"/> <using namespace="System.Data.Linq"/> <using namespace="System.Globalization"/> <using namespace="System.IO"/> <using namespace="System.Xml"/> <br/> <using namespace="BLToolkit.Properties"/> <type name="SByte" clscompliant="false"/> <type name="UInt16" clscompliant="false"/> <type name="UInt32" clscompliant="false"/> <type name="UInt64" clscompliant="false"/> <type name="DateTimeOffset" condition="FW3"/> <type name="Binary" condition="FW3"/> <template name="Integer Types"> <type name="SByte" /> <type name="Int16" /> <type name="Int32" /> <type name="Int64" /> <br/> <type name="Byte" /> <type name="UInt16" /> <type name="UInt32" /> <type name="UInt64" /> </template> <template name="Numeric Types"> <include template="Integer Types"/> <br/> <type name="Single" /> <type name="Double" /> <br/> <type name="Boolean" /> <type name="Decimal" /> </template> <template name="SqlTypes"> <type name="SqlString"/> <br/> <type name="SqlByte"/> <type name="SqlInt16"/> <type name="SqlInt32"/> <type name="SqlInt64"/> <br/> <type name="SqlSingle"/> <type name="SqlDouble"/> <type name="SqlDecimal"/> <type name="SqlMoney"/> <br/> <type name="SqlBoolean"/> </template> <region name="Scalar Types"> <converter type="String"> <group name="Scalar Types."> <include template ="Numeric Types"/> <from type="Char"/> <from type="TimeSpan"/> <from type="DateTime"/> <from type="DateTimeOffset"/> <from type="Guid"/> <default >return p.ToString();</default> </group> <group name="Nullable Types." nullable="true"> <include template ="Numeric Types"/> <from type="Char"/> <from type="TimeSpan"/> <from type="DateTime"/> <from type="DateTimeOffset"/> <from type="Guid"/> <default >return p.ToString();</default> </group> <group name="SqlTypes"> <include template ="SqlTypes"/> <from type="SqlGuid"/> <from type="SqlChars" >return p.IsNull? null: p.ToSqlString().Value;</from> <from type="SqlXml" >return p.IsNull? null: p.Value;</from> <default >return p.ToString();</default> </group> <group name="Other Types"> <from type="Type" >return p == null? null: p.FullName;</from> <from type="XmlDocument">return p == null? null: p.InnerXml;</from> <from type="Byte[]" >return p == null? null: System.Text.Encoding.UTF8.GetString(p);</from> <from type="Binary" >return p == null? null: System.Text.Encoding.UTF8.GetString(p.ToArray());</from> </group> <default nullvalue="Common.Configuration.NullableValues.String" nothrow="true"> if (p is IConvertible) return ((IConvertible)p).ToString(null); if (p is IFormattable) return ((IFormattable)p).ToString(null, null); return p.ToString();</default> </converter> <br/> <converter type="SByte" nullable="false"> <group name="Scalar Types."> <from type="String" >return p == null? (SByte)0: SByte.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Boolean" >return (SByte)(p? 1: 0);</from> <from type="Char"/> <default >return checked((SByte)p);</default> </group> <group name="Nullable Types." nullable="true"> <from type="SByte" >return p.HasValue? p.Value: (SByte)0;</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean" >return (p.HasValue && p.Value)? (SByte)1: (SByte)0;</from> <default >return p.HasValue? checked((SByte)p.Value): (SByte)0;</default> </group> <group name="SqlTypes"> <include template ="SqlTypes"/> <default >return p.IsNull? (SByte)0: ToSByte(p.Value);</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? (SByte)0: checked((SByte)p[0]);</from> <from type="Binary" >return p == null || p.Length == 0? (SByte)0: checked((SByte)p.ToArray()[0]);</from> </group> <default nullvalue="Common.Configuration.NullableValues.SByte"> if (p is IConvertible) return ((IConvertible)p).ToSByte(null); </default> </converter> <converter type="Int16" nullable="false"> <group name="Scalar Types."> <from type="String" >return p == null? (Int16)0: Int16.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Boolean" >return (Int16)(p? 1: 0);</from> <from type="Char"/> <default >return checked((Int16)p);</default> </group> <group name="Nullable Types." nullable="true"> <from type="Int16" >return p.HasValue? p.Value: (Int16)0;</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean" >return (p.HasValue && p.Value)? (Int16)1: (Int16)0;</from> <default >return p.HasValue? checked((Int16)p.Value): (Int16)0;</default> </group> <group name="SqlTypes"> <from type="SqlInt16" >return p.IsNull? (Int16)0: p.Value; </from> <include template ="SqlTypes"/> <default >return p.IsNull? (Int16)0: ToInt16(p.Value);</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? (Int16)0: BitConverter.ToInt16(p, 0);</from> <from type="Binary" >return p == null || p.Length == 0? (Int16)0: BitConverter.ToInt16(p.ToArray(), 0);</from> </group> <default nullvalue="Common.Configuration.NullableValues.Int16"> if (p is IConvertible) return ((IConvertible)p).ToInt16(null); </default> </converter> <converter type="Int32" nullable="false"> <group name="Scalar Types."> <from type="String" >return p == null? 0: Int32.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Boolean" >return p? 1: 0;</from> <from type="Char"/> <default >return checked((Int32)p);</default> </group> <group name="Nullable Types." nullable="true"> <from type="Int32" >return p.HasValue? p.Value: 0;</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean" >return (p.HasValue && p.Value)? 1: 0;</from> <default >return p.HasValue? checked((Int32)p.Value): 0;</default> </group> <group name="SqlTypes"> <from type="SqlInt32" >return p.IsNull? 0: p.Value; </from> <include template ="SqlTypes"/> <default >return p.IsNull? 0: ToInt32(p.Value);</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? 0: BitConverter.ToInt32(p, 0);</from> <from type="Binary" >return p == null || p.Length == 0? 0: BitConverter.ToInt32(p.ToArray(), 0);</from> </group> <default nullvalue="Common.Configuration.NullableValues.Int32"> if (p is IConvertible) return ((IConvertible)p).ToInt32(null); </default> </converter> <converter type="Int64" nullable="false"> <group name="Scalar Types."> <from type="String" >return p == null? 0: Int64.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean" >return p? 1: 0;</from> <from type="DateTime" >return (p - DateTime.MinValue).Ticks;</from> <from type="DateTimeOffset" >return (p - DateTime.MinValue).Ticks;</from> <from type="TimeSpan" >return p.Ticks;</from> <default >return checked((Int64)p);</default> </group> <group name="Nullable Types." nullable="true"> <from type="Int64" >return p.HasValue? p.Value: 0;</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean" >return (p.HasValue && p.Value)? 1: 0;</from> <from type="DateTime" >return p.HasValue? (p.Value - DateTime.MinValue).Ticks: 0;</from> <from type="DateTimeOffset" >return p.HasValue? (p.Value - DateTime.MinValue).Ticks: 0;</from> <from type="TimeSpan" >return p.HasValue? p.Value.Ticks: 0;</from> <default >return p.HasValue? checked((Int64)p.Value): 0;</default> </group> <group name="SqlTypes"> <from type="SqlInt64" >return p.IsNull? 0: p.Value; </from> <include template ="SqlTypes"/> <from type="SqlDateTime"/> <default >return p.IsNull? 0: ToInt64(p.Value);</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? 0: BitConverter.ToInt64(p, 0);</from> <from type="Binary" >return p == null || p.Length == 0? 0: BitConverter.ToInt64(p.ToArray(), 0);</from> </group> <default nullvalue="Common.Configuration.NullableValues.Int64"> if (p is IConvertible) return ((IConvertible)p).ToInt64(null); </default> </converter> <br/> <converter type="Byte" nullable="false"> <group name="Scalar Types."> <from type="String" >return p == null? (Byte)0: Byte.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Boolean" >return (Byte)(p? 1: 0);</from> <from type="Char"/> <default >return checked((Byte)p);</default> </group> <group name="Nullable Types." nullable="true"> <from type="Byte" >return p.HasValue? p.Value: (Byte)0;</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean" >return (p.HasValue && p.Value)? (Byte)1: (Byte)0;</from> <default >return p.HasValue? checked((Byte)p.Value): (Byte)0;</default> </group> <group name="SqlTypes"> <from type="SqlByte" >return p.IsNull? (Byte)0: p.Value; </from> <include template ="SqlTypes"/> <default >return p.IsNull? (Byte)0: ToByte(p.Value);</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? (Byte)0: p[0];</from> <from type="Binary" >return p == null || p.Length == 0? (Byte)0: p.ToArray()[0];</from> </group> <default nullvalue="Common.Configuration.NullableValues.Byte"> if (p is IConvertible) return ((IConvertible)p).ToByte(null); </default> </converter> <converter type="UInt16" nullable="false"> <group name="Scalar Types."> <from type="String" >return p == null? (UInt16)0: UInt16.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Boolean" >return (UInt16)(p? 1: 0);</from> <from type="Char"/> <default >return checked((UInt16)p);</default> </group> <group name="Nullable Types." nullable="true"> <from type="UInt16" >return p.HasValue? p.Value: (UInt16)0;</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean" >return (p.HasValue && p.Value)? (UInt16)1: (UInt16)0;</from> <default >return p.HasValue? checked((UInt16)p.Value): (UInt16)0;</default> </group> <group name="SqlTypes"> <include template ="SqlTypes"/> <default >return p.IsNull? (UInt16)0: ToUInt16(p.Value);</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? (UInt16)0: BitConverter.ToUInt16(p, 0);</from> <from type="Binary" >return p == null || p.Length == 0? (UInt16)0: BitConverter.ToUInt16(p.ToArray(), 0);</from> </group> <default nullvalue="Common.Configuration.NullableValues.UInt16"> if (p is IConvertible) return ((IConvertible)p).ToUInt16(null); </default> </converter> <converter type="UInt32" nullable="false"> <group name="Scalar Types."> <from type="String" >return p == null? 0: UInt32.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Boolean" >return (UInt32)(p? 1: 0);</from> <from type="Char"/> <default >return checked((UInt32)p);</default> </group> <group name="Nullable Types." nullable="true"> <from type="UInt32" >return p.HasValue? p.Value: 0;</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean" >return (p.HasValue && p.Value)? (UInt32)1: 0;</from> <default >return p.HasValue? checked((UInt32)p.Value): 0;</default> </group> <group name="SqlTypes"> <include template ="SqlTypes"/> <default >return p.IsNull? 0: ToUInt32(p.Value);</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? 0: BitConverter.ToUInt32(p, 0);</from> <from type="Binary" >return p == null || p.Length == 0? 0: BitConverter.ToUInt32(p.ToArray(), 0);</from> </group> <default nullvalue="Common.Configuration.NullableValues.UInt32"> if (p is IConvertible) return ((IConvertible)p).ToUInt32(null); </default> </converter> <converter type="UInt64" nullable="false"> <group name="Scalar Types."> <from type="String" >return p == null? 0: UInt64.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Boolean" >return (UInt64)(p? 1: 0);</from> <from type="Char"/> <default >return checked((UInt64)p);</default> </group> <group name="Nullable Types." nullable="true"> <from type="UInt64" >return p.HasValue? p.Value: 0;</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean" >return (p.HasValue && p.Value)? (UInt64)1: 0;</from> <default >return p.HasValue? checked((UInt64)p.Value): 0;</default> </group> <group name="SqlTypes"> <include template ="SqlTypes"/> <default >return p.IsNull? 0: ToUInt64(p.Value);</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? 0: BitConverter.ToUInt64(p, 0);</from> <from type="Binary" >return p == null || p.Length == 0? 0: BitConverter.ToUInt64(p.ToArray(), 0);</from> </group> <default nullvalue="Common.Configuration.NullableValues.UInt64"> if (p is IConvertible) return ((IConvertible)p).ToUInt64(null); </default> </converter> <br/> <converter type="Char" nullable="false"> <group name="Scalar Types."> <from type="String" >return p == null? (Char)0: Char.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Boolean" >return (Char)(p? 1: 0);</from> <default >return checked((Char)p);</default> </group> <group name="Nullable Types." nullable="true"> <from type="Char" >return p.HasValue? p.Value: (Char)0;</from> <br/> <include template ="Numeric Types"/> <from type="Boolean" >return (p.HasValue && p.Value)? (Char)1: (Char)0;</from> <default >return p.HasValue? checked((Char)p.Value): (Char)0;</default> </group> <group name="SqlTypes"> <include template ="SqlTypes"/> <default >return p.IsNull? (Char)0: ToChar(p.Value);</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? (Char)0: BitConverter.ToChar(p, 0);</from> <from type="Binary" >return p == null || p.Length == 0? (Char)0: BitConverter.ToChar(p.ToArray(), 0);</from> </group> <default nullvalue="Common.Configuration.NullableValues.Char"> if (p is IConvertible) return ((IConvertible)p).ToChar(null); </default> </converter> <converter type="Single" nullable="false"> <group name="Scalar Types."> <from type="String" >return p == null? 0.0f: Single.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Boolean" >return p? 1.0f: 0.0f;</from> <from type="Char"/> <default >return checked((Single)p);</default> </group> <group name="Nullable Types." nullable="true"> <from type="Single" >return p.HasValue? p.Value: 0.0f;</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean" >return (p.HasValue && p.Value)? 1.0f: 0.0f;</from> <default >return p.HasValue? checked((Single)p.Value): 0.0f;</default> </group> <group name="SqlTypes"> <from type="SqlSingle">return p.IsNull? 0.0f: p.Value; </from> <include template ="SqlTypes"/> <default >return p.IsNull? 0.0f: ToSingle(p.Value);</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? 0.0f: BitConverter.ToSingle(p, 0);</from> <from type="Binary" >return p == null || p.Length == 0? 0.0f: BitConverter.ToSingle(p.ToArray(), 0);</from> </group> <default nullvalue="Common.Configuration.NullableValues.Single"> if (p is IConvertible) return ((IConvertible)p).ToSingle(null); </default> </converter> <converter type="Double" nullable="false"> <group name="Scalar Types."> <from type="String" >return p == null? 0.0: Double.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Boolean" >return p? 1.0: 0.0;</from> <from type="Char"/> <from type="DateTime" >return (p - DateTime.MinValue).TotalDays;</from> <from type="DateTimeOffset" >return (p - DateTime.MinValue).TotalDays;</from> <from type="TimeSpan" >return p.TotalDays;</from> <default >return checked((Double)p);</default> </group> <group name="Nullable Types." nullable="true"> <from type="Double" >return p.HasValue? p.Value: 0.0;</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean" >return (p.HasValue && p.Value)? 1.0: 0.0;</from> <from type="DateTime" >return p.HasValue? (p.Value - DateTime.MinValue).TotalDays: 0.0;</from> <from type="DateTimeOffset" >return p.HasValue? (p.Value - DateTime.MinValue).TotalDays: 0.0;</from> <from type="TimeSpan" >return p.HasValue? p.Value.TotalDays: 0.0;</from> <default >return p.HasValue? checked((Double)p.Value): 0.0;</default> </group> <group name="SqlTypes"> <from type="SqlDouble">return p.IsNull? 0.0: p.Value; </from> <include template ="SqlTypes"/> <from type="SqlDateTime"/> <default >return p.IsNull? 0.0: ToDouble(p.Value);</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? 0.0: BitConverter.ToDouble(p, 0);</from> <from type="Binary" >return p == null || p.Length == 0? 0.0: BitConverter.ToDouble(p.ToArray(), 0);</from> </group> <default nullvalue="Common.Configuration.NullableValues.Double"> if (p is IConvertible) return ((IConvertible)p).ToDouble(null); </default> </converter> <br/> <converter type="Boolean" nullable="false"> <group name="Scalar Types."> <from type="String">return p == null? false : p.Length == 1 ? ToBoolean(p[0]) : Boolean.Parse(p);</from> <br/> <include template ="Numeric Types"/> <br/> <from type="Char"> switch (p) { case (Char)0: return false; // Allow int <=> Char <=> Boolean case '0': return false; case 'n': return false; case 'N': return false; case 'f': return false; case 'F': return false; case (Char)1: return true; // Allow int <=> Char <=> Boolean case '1': return true; case 'y': return true; case 'Y': return true; case 't': return true; case 'T': return true; } throw CreateInvalidCastException(typeof(Char), typeof(Boolean));</from> <default >return p != 0;</default> </group> <group name="Nullable Types." nullable="true"> <from type="Boolean" >return p.HasValue? p.Value: false;</from> <br/> <include template ="Numeric Types"/> <br/> <from type="Char" >return p.HasValue? ToBoolean(p.Value): false;</from> <default >return p.HasValue? p.Value != 0: false;</default> </group> <group name="SqlTypes"> <from type="SqlBoolean">return p.IsNull? false: p.Value; </from> <include template ="SqlTypes"/> <default >return p.IsNull? false: ToBoolean(p.Value);</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? false: BitConverter.ToBoolean(p, 0);</from> <from type="Binary" >return p == null || p.Length == 0? false: BitConverter.ToBoolean(p.ToArray(), 0);</from> </group> <default nullvalue="Common.Configuration.NullableValues.Boolean"> if (p is IConvertible) return ((IConvertible)p).ToBoolean(null); </default> </converter> <converter type="Decimal" nullable="false"> <group name="Scalar Types."> <from type="String" >return p == null? 0.0m: Decimal.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Boolean" >return p? 1.0m: 0.0m;</from> <from type="Char"/> <default >return checked((Decimal)p);</default> </group> <group name="Nullable Types." nullable="true"> <from type="Decimal" >return p.HasValue? p.Value: 0.0m;</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean" >return (p.HasValue && p.Value)? 1.0m: 0.0m;</from> <default >return p.HasValue? checked((Decimal)p.Value): 0.0m;</default> </group> <group name="SqlTypes"> <from type="SqlDecimal">return p.IsNull? 0.0m: p.Value; </from> <from type="SqlMoney" >return p.IsNull? 0.0m: p.Value; </from> <include template ="SqlTypes"/> <default >return p.IsNull? 0.0m: ToDecimal(p.Value);</default> </group> <group name="Other Types"> <from type="Byte[]"> if (p == null || p.Length == 0) return 0.0m; int[] bits = new int[p.Length / sizeof(int)]; Buffer.BlockCopy(p, 0, bits, 0, p.Length); return new Decimal(bits);</from> <from type="Binary"> if (p == null || p.Length == 0) return 0.0m; int[] bits = new int[p.Length / sizeof(int)]; Buffer.BlockCopy(p.ToArray(), 0, bits, 0, p.Length); return new Decimal(bits); </from> </group> <default nullvalue="Common.Configuration.NullableValues.Decimal"> if (p is IConvertible) return ((IConvertible)p).ToDecimal(null); </default> </converter> <converter type="DateTime" nullable="false"> <group name="Scalar Types."> <from type="String" >return p == null? DateTime.MinValue: DateTime.Parse(p, null, DateTimeStyles.NoCurrentDateDefault);</from> <from type="TimeSpan" >return DateTime.MinValue + p;</from> <from type="Int64" >return DateTime.MinValue + TimeSpan.FromTicks(p);</from> <from type="Double" >return DateTime.MinValue + TimeSpan.FromDays(p);</from> <from type="DateTimeOffset" >return p.LocalDateTime;</from> </group> <group name="Nullable Types." nullable="true"> <from type="DateTime" >return p.HasValue? p.Value: DateTime.MinValue;</from> <from type="DateTimeOffset" >return p.HasValue? p.Value.LocalDateTime: DateTime.MinValue;</from> <from type="TimeSpan" >return p.HasValue? DateTime.MinValue + p.Value: DateTime.MinValue;</from> <from type="Int64" >return p.HasValue? DateTime.MinValue + TimeSpan.FromTicks(p.Value): DateTime.MinValue;</from> <from type="Double" >return p.HasValue? DateTime.MinValue + TimeSpan.FromDays(p.Value): DateTime.MinValue;</from> </group> <group name="SqlTypes"> <from type="SqlDateTime">return p.IsNull? DateTime.MinValue: p.Value; </from> <from type="SqlString" >return p.IsNull? DateTime.MinValue: ToDateTime(p.Value);</from> <from type="SqlInt64" >return p.IsNull? DateTime.MinValue: DateTime.MinValue + TimeSpan.FromTicks(p.Value);</from> <from type="SqlDouble" >return p.IsNull? DateTime.MinValue: DateTime.MinValue + TimeSpan.FromDays(p.Value);</from> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? DateTime.MinValue: DateTime.FromBinary(ToInt64(p));</from> <from type="Binary" >return p == null || p.Length == 0? DateTime.MinValue: DateTime.FromBinary(ToInt64(p.ToArray()));</from> </group> <default nullvalue="Common.Configuration.NullableValues.DateTime"> if (p is IConvertible) return ((IConvertible)p).ToDateTime(null); </default> </converter> <converter type="DateTimeOffset" nullable="false"> <group name="Scalar Types."> <from type="String" >return p == null? DateTimeOffset.MinValue: DateTimeOffset.Parse(p);</from> <from type="TimeSpan" >return DateTimeOffset.MinValue + p;</from> <from type="Int64" >return DateTimeOffset.MinValue + TimeSpan.FromTicks(p);</from> <from type="Double" >return DateTimeOffset.MinValue + TimeSpan.FromDays(p);</from> <from type="DateTime" >return p;</from> </group> <group name="Nullable Types." nullable="true"> <from type="DateTimeOffset" >return p.HasValue? p.Value: DateTimeOffset.MinValue;</from> <from type="DateTime" >return p.HasValue? p.Value: DateTimeOffset.MinValue;</from> <from type="TimeSpan" >return p.HasValue? DateTimeOffset.MinValue + p.Value: DateTimeOffset.MinValue;</from> <from type="Int64" >return p.HasValue? DateTimeOffset.MinValue + TimeSpan.FromTicks(p.Value): DateTimeOffset.MinValue;</from> <from type="Double" >return p.HasValue? DateTimeOffset.MinValue + TimeSpan.FromDays(p.Value): DateTimeOffset.MinValue;</from> </group> <group name="SqlTypes"> <from type="SqlDateTime">return p.IsNull? DateTimeOffset.MinValue: p.Value; </from> <from type="SqlString" >return p.IsNull? DateTimeOffset.MinValue: ToDateTimeOffset(p.Value);</from> <from type="SqlInt64" >return p.IsNull? DateTimeOffset.MinValue: DateTimeOffset.MinValue + TimeSpan.FromTicks(p.Value);</from> <from type="SqlDouble" >return p.IsNull? DateTimeOffset.MinValue: DateTimeOffset.MinValue + TimeSpan.FromDays(p.Value);</from> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? DateTimeOffset.MinValue: new DateTimeOffset(ToDateTime(p));</from> <from type="Binary" >return p == null || p.Length == 0? DateTimeOffset.MinValue: new DateTimeOffset(ToDateTime(p.ToArray()));</from> </group> <default nullvalue="Common.Configuration.NullableValues.DateTimeOffset"> if (p is IConvertible) return ToDateTimeOffset(((IConvertible)p).ToDateTime(null)); </default> </converter> <converter type="TimeSpan" nullable="false"> <group name="Scalar Types."> <from type="String" >return p == null? TimeSpan.MinValue: TimeSpan.Parse(p);</from> <from type="DateTime" >return p - DateTime.MinValue;</from> <from type="DateTimeOffset">return p - DateTimeOffset.MinValue;</from> <from type="Int64" >return TimeSpan.FromTicks(p);</from> <from type="Double" >return TimeSpan.FromDays(p);</from> </group> <group name="Nullable Types." nullable="true"> <from type="TimeSpan" >return p.HasValue? p.Value: TimeSpan.MinValue;</from> <from type="DateTime" >return p.HasValue? p.Value - DateTime.MinValue: TimeSpan.MinValue;</from> <from type="DateTimeOffset" >return p.HasValue? p.Value - DateTimeOffset.MinValue: TimeSpan.MinValue;</from> <from type="Int64" >return p.HasValue? TimeSpan.FromTicks(p.Value): TimeSpan.MinValue;</from> <from type="Double" >return p.HasValue? TimeSpan.FromDays(p.Value): TimeSpan.MinValue;</from> </group> <group name="SqlTypes"> <from type="SqlString" >return p.IsNull? TimeSpan.MinValue: TimeSpan.Parse(p.Value); </from> <from type="SqlDateTime">return p.IsNull? TimeSpan.MinValue: p.Value - DateTime.MinValue;</from> <from type="SqlInt64" >return p.IsNull? TimeSpan.MinValue: TimeSpan.FromTicks(p.Value);</from> <from type="SqlDouble" >return p.IsNull? TimeSpan.MinValue: TimeSpan.FromDays(p.Value);</from> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? TimeSpan.MinValue: TimeSpan.FromTicks(ToInt64(p));</from> <from type="Binary" >return p == null || p.Length == 0? TimeSpan.MinValue: TimeSpan.FromTicks(ToInt64(p.ToArray()));</from> </group> <default nullvalue="Common.Configuration.NullableValues.TimeSpan"/> </converter> <converter type="Guid" nullable="false"> <group name="Scalar Types."> <from type="String" >return p == null? Guid.Empty: new Guid(p);</from> </group> <group name="Nullable Types." nullable="true"> <from type="Guid" >return p.HasValue? p.Value: Guid.Empty;</from> </group> <group name="SqlTypes"> <from type="SqlGuid" >return p.IsNull? Guid.Empty: p.Value; </from> <from type="SqlString">return p.IsNull? Guid.Empty: new Guid(p.Value); </from> <from type="SqlBinary">return p.IsNull? Guid.Empty: p.ToSqlGuid().Value;</from> </group> <group name="Other Types."> <from type="Byte[]" >return p == null? Guid.Empty: new Guid(p);</from> <from type="Binary" >return p == null? Guid.Empty: new Guid(p.ToArray());</from> <from type="Type" >return p == null? Guid.Empty: p.GUID;</from> </group> <default nullvalue="Common.Configuration.NullableValues.Guid"/> </converter> </region> <region name="Nullable Types"> <converter type="SByte" nullable="true"> <group name="Scalar Types."> <from type="SByte" >return p;</from> <from type="String" >return p == null? null: (SByte?)SByte.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean">return (SByte?)(p? 1: 0);</from> <default >return checked((SByte?)p);</default> </group> <group name="Nullable Types." nullable="true"> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean">return p.HasValue? (SByte?)(p.Value? 1: 0): null;</from> <default >return p.HasValue? checked((SByte?)p.Value): null;</default> </group> <group name="SqlTypes"> <include template ="SqlTypes"/> <default >return p.IsNull? null: ToNullableSByte(p.Value);</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? null: (SByte?)ToSByte(p);</from> <from type="Binary" >return p == null || p.Length == 0? null: (SByte?)ToSByte(p.ToArray());</from> </group> <default nullvalue="null"> if (p is IConvertible) return ((IConvertible)p).ToSByte(null); </default> </converter> <converter type="Int16" nullable="true"> <group name="Scalar Types."> <from type="Int16" >return p;</from> <from type="String" >return p == null? null: (Int16?)Int16.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean">return (Int16?)(p? 1: 0);</from> <default >return checked((Int16?)p);</default> </group> <group name="Nullable Types." nullable="true"> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean">return p.HasValue? (Int16?)(p.Value? 1: 0): null;</from> <default >return p.HasValue? checked((Int16?)p.Value): null;</default> </group> <group name="SqlTypes"> <from type="SqlInt16" >return p.IsNull? null: (Int16?)p.Value; </from> <include template ="SqlTypes"/> <default >return p.IsNull? null: ToNullableInt16(p.Value);</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? null: (Int16?)ToInt16(p);</from> <from type="Binary" >return p == null || p.Length == 0? null: (Int16?)ToInt16(p.ToArray());</from> </group> <default nullvalue="null"> if (p is IConvertible) return ((IConvertible)p).ToInt16(null); </default> </converter> <converter type="Int32" nullable="true"> <group name="Scalar Types."> <from type="Int32" >return p;</from> <from type="String" >return p == null? null: (Int32?)Int32.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean">return p? 1: 0;</from> <default >return checked((Int32?)p);</default> </group> <group name="Nullable Types." nullable="true"> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean">return p.HasValue? (Int32?)(p.Value? 1: 0): null;</from> <default >return p.HasValue? checked((Int32?)p.Value): null;</default> </group> <group name="SqlTypes"> <from type="SqlInt32" >return p.IsNull? null: (Int32?)p.Value; </from> <include template ="SqlTypes"/> <default >return p.IsNull? null: ToNullableInt32(p.Value);</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? null: (Int32?)ToInt32(p);</from> <from type="Binary" >return p == null || p.Length == 0? null: (Int32?)ToInt32(p.ToArray());</from> </group> <default nullvalue="null"> if (p is IConvertible) return ((IConvertible)p).ToInt32(null); </default> </converter> <converter type="Int64" nullable="true"> <group name="Scalar Types."> <from type="Int64" >return p;</from> <from type="String" >return p == null? null: (Int64?)Int64.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean" >return p? 1: 0;</from> <from type="DateTime">return (p - DateTime.MinValue).Ticks;</from> <from type="DateTimeOffset">return (p - DateTimeOffset.MinValue).Ticks;</from> <from type="TimeSpan">return p.Ticks;</from> <default >return checked((Int64?)p);</default> </group> <group name="Nullable Types." nullable="true"> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean">return p.HasValue? (Int64?)(p.Value? 1: 0): null;</from> <from type="DateTime">return p.HasValue? (Int64?)(p.Value - DateTime.MinValue).Ticks: null;</from> <from type="DateTimeOffset">return p.HasValue? (Int64?)(p.Value - DateTimeOffset.MinValue).Ticks: null;</from> <from type="TimeSpan">return p.HasValue? (Int64?)p.Value.Ticks: null;</from> <default >return p.HasValue? checked((Int64?)p.Value): null;</default> </group> <group name="SqlTypes"> <from type="SqlInt64">return p.IsNull? null: (Int64?)p.Value; </from> <include template ="SqlTypes"/> <from type="SqlDateTime"/> <default >return p.IsNull? null: ToNullableInt64(p.Value);</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? null: (Int64?)ToInt64(p);</from> <from type="Binary" >return p == null || p.Length == 0? null: (Int64?)ToInt64(p.ToArray());</from> </group> <default nullvalue="null"> if (p is IConvertible) return ((IConvertible)p).ToInt64(null); </default> </converter> <br/> <converter type="Byte" nullable="true"> <group name="Scalar Types."> <from type="Byte" >return p;</from> <from type="String" >return p == null? null: (Byte?)Byte.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean">return (Byte?)(p? 1: 0);</from> <default >return checked((Byte?)p);</default> </group> <group name="Nullable Types." nullable="true"> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean">return p.HasValue? (Byte?)(p.Value? 1: 0): null;</from> <default >return p.HasValue? checked((Byte?)p.Value): null;</default> </group> <group name="SqlTypes"> <from type="SqlByte" >return p.IsNull? null: (Byte?)p.Value; </from> <include template ="SqlTypes"/> <default >return p.IsNull? null: ToNullableByte(p.Value);</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? null: (Byte?)ToByte(p);</from> <from type="Binary" >return p == null || p.Length == 0? null: (Byte?)ToByte(p.ToArray());</from> </group> <default nullvalue="null"> if (p is IConvertible) return ((IConvertible)p).ToByte(null); </default> </converter> <converter type="UInt16" nullable="true"> <group name="Scalar Types."> <from type="UInt16" >return p;</from> <from type="String" >return p == null? null: (UInt16?)UInt16.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean">return (UInt16?)(p? 1: 0);</from> <default >return checked((UInt16?)p);</default> </group> <group name="Nullable Types." nullable="true"> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean">return p.HasValue? (UInt16?)(p.Value? 1: 0): null;</from> <default >return p.HasValue? checked((UInt16?)p.Value): null;</default> </group> <group name="SqlTypes"> <include template ="SqlTypes"/> <default >return p.IsNull? null: ToNullableUInt16(p.Value);</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? null: (UInt16?)ToUInt16(p);</from> <from type="Binary" >return p == null || p.Length == 0? null: (UInt16?)ToUInt16(p.ToArray());</from> </group> <default nullvalue="null"> if (p is IConvertible) return ((IConvertible)p).ToUInt16(null); </default> </converter> <converter type="UInt32" nullable="true"> <group name="Scalar Types."> <from type="UInt32" >return p;</from> <from type="String" >return p == null? null: (UInt32?)UInt32.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean">return (UInt32?)(p? 1: 0);</from> <default >return checked((UInt32?)p);</default> </group> <group name="Nullable Types." nullable="true"> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean">return p.HasValue? (UInt32?)(p.Value? 1: 0): null;</from> <default >return p.HasValue? checked((UInt32?)p.Value): null;</default> </group> <group name="SqlTypes"> <include template ="SqlTypes"/> <default >return p.IsNull? null: ToNullableUInt32(p.Value);</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? null: (UInt32?)ToUInt32(p);</from> <from type="Binary" >return p == null || p.Length == 0? null: (UInt32?)ToUInt32(p.ToArray());</from> </group> <default nullvalue="null"> if (p is IConvertible) return ((IConvertible)p).ToUInt32(null); </default> </converter> <converter type="UInt64" nullable="true"> <group name="Scalar Types."> <from type="UInt64" >return p;</from> <from type="String" >return p == null? null: (UInt64?)UInt64.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean" >return (UInt64?)(p? 1: 0);</from> <default >return checked((UInt64?)p);</default> </group> <group name="Nullable Types." nullable="true"> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean" >return p.HasValue? (UInt64?)(p.Value? 1: 0): null;</from> <default >return p.HasValue? checked((UInt64?)p.Value): null;</default> </group> <group name="SqlTypes"> <include template ="SqlTypes"/> <default >return p.IsNull? null: ToNullableUInt64(p.Value);</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? null: (UInt64?)ToUInt64(p);</from> <from type="Binary" >return p == null || p.Length == 0? null: (UInt64?)ToUInt64(p.ToArray());</from> </group> <default nullvalue="null"> if (p is IConvertible) return ((IConvertible)p).ToUInt64(null); </default> </converter> <br/> <converter type="Char" nullable="true"> <group name="Scalar Types."> <from type="Char" >return p;</from> <from type="String">return p == null? null: (Char?)Char.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Boolean">return (Char?)(p? 1: 0);</from> <default >return checked((Char?)p);</default> </group> <group name="Nullable Types." nullable="true"> <include template ="Numeric Types"/> <from type="Boolean" >return p.HasValue? (Char?)(p.Value? 1: 0): null;</from> <default >return p.HasValue? checked((Char?)p.Value): null;</default> </group> <group name="SqlTypes"> <include template ="SqlTypes"/> <default >return p.IsNull? null: ToNullableChar(p.Value);</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? null: (Char?)ToChar(p);</from> <from type="Binary" >return p == null || p.Length == 0? null: (Char?)ToChar(p.ToArray());</from> </group> <default nullvalue="null"> if (p is IConvertible) return ((IConvertible)p).ToChar(null); </default> </converter> <converter type="Single" nullable="true"> <group name="Scalar Types."> <from type="Single" >return p;</from> <from type="String" >return p == null? null: (Single?)Single.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean">return p? 1.0f: 0.0f;</from> <default >return checked((Single?)p);</default> </group> <group name="Nullable Types." nullable="true"> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean">return p.HasValue? (Single?)(p.Value? 1.0f: 0.0f): null;</from> <default >return p.HasValue? checked((Single?)p.Value): null;</default> </group> <group name="SqlTypes"> <from type="SqlSingle" >return p.IsNull? null: (Single?)p.Value; </from> <include template ="SqlTypes"/> <default >return p.IsNull? null: ToNullableSingle(p.Value);</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? null: (Single?)ToSingle(p);</from> <from type="Binary" >return p == null || p.Length == 0? null: (Single?)ToSingle(p.ToArray());</from> </group> <default nullvalue="null"> if (p is IConvertible) return ((IConvertible)p).ToSingle(null); </default> </converter> <converter type="Double" nullable="true"> <group name="Scalar Types."> <from type="Double" >return p;</from> <from type="String" >return p == null? null: (Double?)Double.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean" >return p? 1.0: 0.0;</from> <from type="DateTime" >return (p - DateTime.MinValue).TotalDays;</from> <from type="DateTimeOffset" >return (p - DateTimeOffset.MinValue).TotalDays;</from> <from type="TimeSpan" >return p.TotalDays;</from> <default >return checked((Double?)p);</default> </group> <group name="Nullable Types." nullable="true"> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean" >return p.HasValue? (Double?)(p.Value? 1.0: 0.0): null;</from> <from type="DateTime" >return p.HasValue? (Double?)(p.Value - DateTime.MinValue).TotalDays: null;</from> <from type="DateTimeOffset" >return p.HasValue? (Double?)(p.Value - DateTimeOffset.MinValue).TotalDays: null;</from> <from type="TimeSpan" >return p.HasValue? (Double?)p.Value.TotalDays: null;</from> <default >return p.HasValue? checked((Double?)p.Value): null;</default> </group> <group name="SqlTypes"> <from type="SqlDouble">return p.IsNull? null: (Double?)p.Value; </from> <include template ="SqlTypes"/> <from type="SqlDateTime">return p.IsNull? null: (Double?)(p.Value - DateTime.MinValue).TotalDays;</from> <default >return p.IsNull? null: ToNullableDouble(p.Value);</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? null: (Double?)ToDouble(p);</from> <from type="Binary" >return p == null || p.Length == 0? null: (Double?)ToDouble(p.ToArray());</from> </group> <default nullvalue="null"> if (p is IConvertible) return ((IConvertible)p).ToDouble(null); </default> </converter> <br/> <converter type="Boolean" nullable="true"> <group name="Scalar Types."> <from type="Boolean" >return p;</from> <from type="String" >return p == null? null: (Boolean?)Boolean.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Char" /> <default >return ToBoolean(p);</default> </group> <group name="Nullable Types." nullable="true"> <include template ="Numeric Types"/> <from type="Char" /> <default >return p.HasValue? (Boolean?)ToBoolean(p.Value): null;</default> </group> <group name="SqlTypes"> <from type="SqlBoolean">return p.IsNull? null: (Boolean?) p.Value; </from> <include template ="SqlTypes"/> <default >return p.IsNull? null: (Boolean?)ToBoolean(p.Value);</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? null: (Boolean?)ToBoolean(p);</from> <from type="Binary" >return p == null || p.Length == 0? null: (Boolean?)ToBoolean(p.ToArray());</from> </group> <default nullvalue="null"> if (p is IConvertible) return ((IConvertible)p).ToBoolean(null); </default> </converter> <converter type="Decimal" nullable="true"> <group name="Scalar Types."> <from type="Decimal" >return p;</from> <from type="String" >return p == null? null: (Decimal?)Decimal.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean">return p? 1.0m: 0.0m;</from> <default >return checked((Decimal?)p);</default> </group> <group name="Nullable Types." nullable="true"> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean">return p.HasValue? (Decimal?)(p.Value? 1.0m: 0.0m): null;</from> <default >return p.HasValue? checked((Decimal?)p.Value): null;</default> </group> <group name="SqlTypes"> <from type="SqlDecimal">return p.IsNull? null: (Decimal?)p.Value; </from> <from type="SqlMoney" >return p.IsNull? null: (Decimal?)p.Value; </from> <include template ="SqlTypes"/> <default >return p.IsNull? null: ToNullableDecimal(p.Value);</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? null: (Decimal?)ToDecimal(p);</from> <from type="Binary" >return p == null || p.Length == 0? null: (Decimal?)ToDecimal(p.ToArray());</from> </group> <default nullvalue="null"> if (p is IConvertible) return ((IConvertible)p).ToDecimal(null); </default> </converter> <converter type="DateTime" nullable="true"> <group name="Scalar Types."> <from type="DateTime">return p;</from> <from type="DateTimeOffset">return p.LocalDateTime;</from> <from type="String" >return p == null? null: (DateTime?)DateTime.Parse(p);</from> <br/> <from type="TimeSpan" >return DateTime.MinValue + p;</from> <from type="Int64" >return DateTime.MinValue + TimeSpan.FromTicks(p);</from> <from type="Double" >return DateTime.MinValue + TimeSpan.FromDays(p);</from> </group> <group name="Nullable Types." nullable="true"> <from type="TimeSpan" >return p.HasValue? DateTime.MinValue + p.Value: (DateTime?)null;</from> <from type="Int64" >return p.HasValue? DateTime.MinValue + TimeSpan.FromTicks(p.Value): (DateTime?)null;</from> <from type="Double" >return p.HasValue? DateTime.MinValue + TimeSpan.FromDays(p.Value): (DateTime?)null;</from> <from type="DateTimeOffset">return p.HasValue? p.Value.LocalDateTime: (DateTime?)null;</from> </group> <group name="SqlTypes"> <from type="SqlDateTime">return p.IsNull? (DateTime?)null: p.Value; </from> <from type="SqlString" >return p.IsNull? (DateTime?)null: ToDateTime(p.Value);</from> <from type="SqlInt64" >return p.IsNull? (DateTime?)null: DateTime.MinValue + TimeSpan.FromTicks(p.Value);</from> <from type="SqlDouble" >return p.IsNull? (DateTime?)null: DateTime.MinValue + TimeSpan.FromDays(p.Value);</from> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? null: (DateTime?)ToDateTime(p);</from> <from type="Binary" >return p == null || p.Length == 0? null: (DateTime?)ToDateTime(p.ToArray());</from> </group> <default nullvalue="null"> if (p is IConvertible) return ((IConvertible)p).ToDateTime(null); </default> </converter> <converter type="DateTimeOffset" nullable="true"> <group name="Scalar Types."> <from type="DateTime">return p;</from> <from type="DateTimeOffset">return p;</from> <from type="String" >return p == null? null: (DateTimeOffset?)DateTimeOffset.Parse(p);</from> <br/> <from type="TimeSpan" >return DateTimeOffset.MinValue + p;</from> <from type="Int64" >return DateTimeOffset.MinValue + TimeSpan.FromTicks(p);</from> <from type="Double" >return DateTimeOffset.MinValue + TimeSpan.FromDays(p);</from> </group> <group name="Nullable Types." nullable="true"> <from type="TimeSpan" >return p.HasValue? DateTimeOffset.MinValue + p.Value: (DateTimeOffset?)null;</from> <from type="Int64" >return p.HasValue? DateTimeOffset.MinValue + TimeSpan.FromTicks(p.Value): (DateTimeOffset?)null;</from> <from type="Double" >return p.HasValue? DateTimeOffset.MinValue + TimeSpan.FromDays(p.Value): (DateTimeOffset?)null;</from> <from type="DateTime">return p.HasValue? p: null;</from> </group> <group name="SqlTypes"> <from type="SqlDateTime">return p.IsNull? (DateTimeOffset?)null: p.Value; </from> <from type="SqlString" >return p.IsNull? (DateTimeOffset?)null: ToDateTimeOffset(p.Value);</from> <from type="SqlInt64" >return p.IsNull? (DateTimeOffset?)null: DateTimeOffset.MinValue + TimeSpan.FromTicks(p.Value);</from> <from type="SqlDouble" >return p.IsNull? (DateTimeOffset?)null: DateTimeOffset.MinValue + TimeSpan.FromDays(p.Value);</from> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? null: (DateTimeOffset?)ToDateTimeOffset(p);</from> <from type="Binary" >return p == null || p.Length == 0? null: (DateTimeOffset?)ToDateTimeOffset(p.ToArray());</from> </group> <default nullvalue="null"> if (p is IConvertible) return ToDateTimeOffset(((IConvertible)p).ToDateTime(null)); </default> </converter> <converter type="TimeSpan" nullable="true"> <group name="Scalar Types."> <from type="TimeSpan" >return p;</from> <from type="String" >return p == null? null: (TimeSpan?)TimeSpan.Parse(p);</from> <from type="DateTime" >return p - DateTime.MinValue;</from> <from type="DateTimeOffset">return p - DateTimeOffset.MinValue;</from> <from type="Int64" >return TimeSpan.FromTicks(p);</from> <from type="Double" >return TimeSpan.FromDays(p);</from> </group> <group name="Nullable Types." nullable="true"> <from type="DateTime" >return p.HasValue? p.Value - DateTime.MinValue: (TimeSpan?)null;</from> <from type="DateTimeOffset" >return p.HasValue? p.Value - DateTimeOffset.MinValue: (TimeSpan?)null;</from> <from type="Int64" >return p.HasValue? TimeSpan.FromTicks(p.Value): (TimeSpan?)null;</from> <from type="Double" >return p.HasValue? TimeSpan.FromDays(p.Value): (TimeSpan?)null;</from> </group> <group name="SqlTypes"> <from type="SqlString" >return p.IsNull? (TimeSpan?)null: TimeSpan.Parse(p.Value); </from> <from type="SqlDateTime">return p.IsNull? (TimeSpan?)null: p.Value - DateTime.MinValue;</from> <from type="SqlInt64" >return p.IsNull? (TimeSpan?)null: TimeSpan.FromTicks(p.Value);</from> <from type="SqlDouble" >return p.IsNull? (TimeSpan?)null: TimeSpan.FromDays(p.Value);</from> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? null: (TimeSpan?)ToTimeSpan(p);</from> <from type="Binary" >return p == null || p.Length == 0? null: (TimeSpan?)ToTimeSpan(p.ToArray());</from> </group> <default nullvalue="null"/> </converter> <converter type="Guid" nullable="true"> <group name="Scalar Types."> <from type="Guid" >return p;</from> <from type="String" >return p == null? null: (Guid?)new Guid(p);</from> </group> <group name="SqlTypes"> <from type="SqlGuid" >return p.IsNull? null: (Guid?)p.Value; </from> <from type="SqlString">return p.IsNull? null: (Guid?)new Guid(p.Value); </from> <from type="SqlBinary">return p.IsNull? null: (Guid?)p.ToSqlGuid().Value;</from> </group> <group name="Other Types."> <from type="Type" >return p == null? null: (Guid?)p.GUID;</from> <from type="Byte[]" >return p == null? null: (Guid?)new Guid(p);</from> <from type="Binary" >return p == null? null: (Guid?)new Guid(p.ToArray());</from> </group> <default nullvalue="null"/> </converter> </region> <region name="SqlTypes"> <converter type="SqlString"> <group name="Scalar Types."> <from type="String" >return p ?? SqlString.Null;</from> <br/> <include template ="Numeric Types"/> <from type="Char" /> <from type="TimeSpan"/> <from type="DateTime"/> <from type="DateTimeOffset"/> <from type="Guid" /> <from type="Char[]" >return new String(p);</from> <default >return p.ToString();</default> </group> <group name="Nullable Types." nullable="true"> <include template ="Numeric Types"/> <from type="Char" /> <from type="TimeSpan"/> <from type="DateTime"/> <from type="DateTimeOffset"/> <from type="Guid" /> <default >return p.HasValue? p.ToString(): SqlString.Null;</default> </group> <group name="SqlTypes"> <include template="SqlTypes"/> <from type="SqlChars"/> <from type="SqlXml">return p.IsNull? SqlString.Null: p.Value;</from> <from type="SqlGuid" /> <from type="SqlDateTime"/> <default >return p.ToSqlString();</default> </group> <group name="Other Types"> <from type="Type" >return p == null? SqlString.Null: p.FullName;</from> <from type="XmlDocument">return p == null? SqlString.Null: p.InnerXml;</from> <from type="Byte[]" >return p == null || p.Length == 0? SqlString.Null: new SqlString(ToString(p));</from> <from type="Binary" >return p == null || p.Length == 0? SqlString.Null: new SqlString(ToString(p.ToArray()));</from> </group> <default nullvalue="SqlString.Null" nothrow="true"> return ToString(p);</default> </converter> <br/> <converter type="SqlByte"> <group name="Scalar Types."> <from type="Byte" >return p;</from> <from type="String" >return p == null? SqlByte.Null: SqlByte.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean" >return (Byte)(p? 1: 0);</from> <default >return checked((Byte)p);</default> </group> <group name="Nullable Types." nullable="true"> <from type="Byte" >return p.HasValue? p.Value: SqlByte.Null;</from> <include template ="Numeric Types"/> <from type="Char"/> <default >return p.HasValue? ToByte(p.Value): SqlByte.Null;</default> </group> <group name="SqlTypes"> <include template="SqlTypes"/> <from type="SqlDateTime">return p.IsNull? SqlByte.Null: ToByte(p.Value);</from> <default >return p.ToSqlByte();</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? SqlByte.Null: new SqlByte(ToByte(p));</from> <from type="Binary" >return p == null || p.Length == 0? SqlByte.Null: new SqlByte(ToByte(p.ToArray()));</from> </group> <default nullvalue="SqlByte.Null" nothrow="true"> return ToByte(p);</default> </converter> <converter type="SqlInt16"> <group name="Scalar Types."> <from type="Int16" >return p;</from> <from type="String" >return p == null? SqlInt16.Null: SqlInt16.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean" >return (Int16)(p? 1: 0);</from> <default >return checked((Int16)p);</default> </group> <group name="Nullable Types." nullable="true"> <from type="Int16" >return p.HasValue? p.Value: SqlInt16.Null;</from> <include template ="Numeric Types"/> <from type="Char"/> <default >return p.HasValue? ToInt16(p.Value): SqlInt16.Null;</default> </group> <group name="SqlTypes"> <include template="SqlTypes"/> <from type="SqlDateTime">return p.IsNull? SqlInt16.Null: ToInt16(p.Value);</from> <default >return p.ToSqlInt16();</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? SqlInt16.Null: new SqlInt16(ToInt16(p));</from> <from type="Binary" >return p == null || p.Length == 0? SqlInt16.Null: new SqlInt16(ToInt16(p.ToArray()));</from> </group> <default nullvalue="SqlInt16.Null" nothrow="true"> return ToInt16(p);</default> </converter> <converter type="SqlInt32"> <group name="Scalar Types."> <from type="Int32" >return p;</from> <from type="String" >return p == null? SqlInt32.Null: SqlInt32.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean" >return p? 1: 0;</from> <default >return checked((Int32)p);</default> </group> <group name="Nullable Types." nullable="true"> <from type="Int32" >return p.HasValue? p.Value: SqlInt32.Null;</from> <include template ="Numeric Types"/> <from type="Char"/> <default >return p.HasValue? ToInt32(p.Value): SqlInt32.Null;</default> </group> <group name="SqlTypes"> <include template="SqlTypes"/> <from type="SqlDateTime">return p.IsNull? SqlInt32.Null: ToInt32(p.Value);</from> <default >return p.ToSqlInt32();</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? SqlInt32.Null: new SqlInt32(ToInt32(p));</from> <from type="Binary" >return p == null || p.Length == 0? SqlInt32.Null: new SqlInt32(ToInt32(p.ToArray()));</from> </group> <default nullvalue="SqlInt32.Null" nothrow="true"> return ToInt32(p);</default> </converter> <converter type="SqlInt64"> <group name="Scalar Types."> <from type="Int64" >return p;</from> <from type="String" >return p == null? SqlInt64.Null: SqlInt64.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean" >return p? 1: 0;</from> <from type="DateTime" >return (p - DateTime.MinValue).Ticks;</from> <from type="DateTimeOffset" >return (p - DateTimeOffset.MinValue).Ticks;</from> <from type="TimeSpan" >return p.Ticks;</from> <default >return checked((Int64)p);</default> </group> <group name="Nullable Types." nullable="true"> <from type="Int64" >return p.HasValue? p.Value: SqlInt64.Null;</from> <include template ="Numeric Types"/> <from type="Char"/> <from type="DateTime"/> <from type="DateTimeOffset"/> <from type="TimeSpan"/> <default >return p.HasValue? ToInt64(p.Value): SqlInt64.Null;</default> </group> <group name="SqlTypes"> <include template="SqlTypes"/> <from type="SqlDateTime">return p.IsNull? SqlInt64.Null: ToInt64(p.Value);</from> <default >return p.ToSqlInt64();</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? SqlInt64.Null: new SqlInt64(ToInt64(p));</from> <from type="Binary" >return p == null || p.Length == 0? SqlInt64.Null: new SqlInt64(ToInt64(p.ToArray()));</from> </group> <default nullvalue="SqlInt64.Null" nothrow="true"> return ToInt64(p);</default> </converter> <br/> <converter type="SqlSingle"> <group name="Scalar Types."> <from type="Single" >return p;</from> <from type="String" >return p == null? SqlSingle.Null: SqlSingle.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean" >return p? 1.0f: 0.0f;</from> <default >return checked((Single)p);</default> </group> <group name="Nullable Types." nullable="true"> <from type="Single" >return p.HasValue? p.Value: SqlSingle.Null;</from> <include template ="Numeric Types"/> <default >return p.HasValue? ToSingle(p.Value): SqlSingle.Null;</default> </group> <group name="SqlTypes"> <include template="SqlTypes"/> <default >return p.ToSqlSingle();</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? SqlSingle.Null: new SqlSingle(ToSingle(p));</from> <from type="Binary" >return p == null || p.Length == 0? SqlSingle.Null: new SqlSingle(ToSingle(p.ToArray()));</from> </group> <default nullvalue="SqlSingle.Null" nothrow="true"> return ToSingle(p);</default> </converter> <converter type="SqlDouble"> <group name="Scalar Types."> <from type="Double" >return p;</from> <from type="String" >return p == null? SqlDouble.Null: SqlDouble.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean" >return p? 1.0: 0.0;</from> <from type="DateTime" >return (p - DateTime.MinValue).TotalDays;</from> <from type="DateTimeOffset" >return (p - DateTimeOffset.MinValue).TotalDays;</from> <from type="TimeSpan" >return p.TotalDays;</from> <default >return checked((Double)p);</default> </group> <group name="Nullable Types." nullable="true"> <from type="Double" >return p.HasValue? p.Value: SqlDouble.Null;</from> <include template ="Numeric Types"/> <from type="DateTime"/> <from type="DateTimeOffset"/> <from type="TimeSpan"/> <default >return p.HasValue? ToDouble(p.Value): SqlDouble.Null;</default> </group> <group name="SqlTypes"> <include template="SqlTypes"/> <from type="SqlDateTime">return p.IsNull? SqlDouble.Null: ToDouble(p.Value);</from> <default >return p.ToSqlDouble();</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? SqlDouble.Null: new SqlDouble(ToDouble(p));</from> <from type="Binary" >return p == null || p.Length == 0? SqlDouble.Null: new SqlDouble(ToDouble(p.ToArray()));</from> </group> <default nullvalue="SqlDouble.Null" nothrow="true"> return ToDouble(p);</default> </converter> <converter type="SqlDecimal"> <group name="Scalar Types."> <from type="Decimal" >return p;</from> <from type="String" >return p == null? SqlDecimal.Null: SqlDecimal.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean" >return p? 1.0m: 0.0m;</from> <default >return checked((Decimal)p);</default> </group> <group name="Nullable Types." nullable="true"> <from type="Decimal" >return p.HasValue? p.Value: SqlDecimal.Null;</from> <include template ="Numeric Types"/> <default >return p.HasValue? ToDecimal(p.Value): SqlDecimal.Null;</default> </group> <group name="SqlTypes"> <include template="SqlTypes"/> <default >return p.ToSqlDecimal();</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? SqlDecimal.Null: new SqlDecimal(ToDecimal(p));</from> <from type="Binary" >return p == null || p.Length == 0? SqlDecimal.Null: new SqlDecimal(ToDecimal(p.ToArray()));</from> </group> <default nullvalue="SqlDecimal.Null" nothrow="true"> return ToDecimal(p);</default> </converter> <converter type="SqlMoney"> <group name="Scalar Types."> <from type="Decimal" >return p;</from> <from type="String" >return p == null? SqlMoney.Null: SqlMoney.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="Boolean" >return p? 1.0m: 0.0m;</from> <default >return checked((Decimal)p);</default> </group> <group name="Nullable Types." nullable="true"> <from type="Decimal" >return p.HasValue? p.Value: SqlMoney.Null;</from> <include template ="Numeric Types"/> <default >return p.HasValue? ToDecimal(p.Value): SqlMoney.Null;</default> </group> <group name="SqlTypes"> <include template="SqlTypes"/> <default >return p.ToSqlMoney();</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? SqlMoney.Null: new SqlMoney(ToDecimal(p));</from> <from type="Binary" >return p == null || p.Length == 0? SqlMoney.Null: new SqlMoney(ToDecimal(p.ToArray()));</from> </group> <default nullvalue="SqlMoney.Null" nothrow="true"> return ToDecimal(p);</default> </converter> <br/> <converter type="SqlBoolean"> <group name="Scalar Types."> <from type="Boolean" >return p;</from> <from type="String" >return p == null? SqlBoolean.Null: SqlBoolean.Parse(p);</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <default >return p != 0;</default> </group> <group name="Nullable Types." nullable="true"> <from type="Boolean" >return p.HasValue? p.Value: SqlBoolean.Null;</from> <include template ="Numeric Types"/> <from type="Char" /> <default >return p.HasValue? ToBoolean(p.Value): SqlBoolean.Null;</default> </group> <group name="SqlTypes"> <include template="SqlTypes"/> <default >return p.ToSqlBoolean();</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? SqlBoolean.Null: new SqlBoolean(ToBoolean(p));</from> <from type="Binary" >return p == null || p.Length == 0? SqlBoolean.Null: new SqlBoolean(ToBoolean(p.ToArray()));</from> </group> <default nullvalue="SqlBoolean.Null" nothrow="true"> return ToBoolean(p);</default> </converter> <converter type="SqlDateTime"> <group name="Scalar Types."> <from type="String" >return p == null? SqlDateTime.Null: SqlDateTime.Parse(p);</from> <from type="DateTime" >return p;</from> <from type="DateTimeOffset" >return p.LocalDateTime;</from> <from type="TimeSpan"/> <from type="Int64"/> <from type="Double"/> <default >return ToDateTime(p);</default> </group> <group name="Nullable Types." nullable="true"> <from type="DateTime">return p.HasValue? p.Value: SqlDateTime.Null;</from> <from type="DateTimeOffset">return p.HasValue? p.Value.LocalDateTime: SqlDateTime.Null;</from> <from type="TimeSpan"/> <from type="Int64"/> <from type="Double"/> <default >return p.HasValue? ToDateTime(p.Value): SqlDateTime.Null;</default> </group> <group name="SqlTypes"> <from type="SqlString">return p.ToSqlDateTime();</from> <from type="SqlInt64"/> <from type="SqlDouble"/> <default >return p.IsNull? SqlDateTime.Null: ToDateTime(p);</default> </group> <group name="Other Types"> <from type="Byte[]" >return p == null || p.Length == 0? SqlDateTime.Null: new SqlDateTime(ToDateTime(p));</from> <from type="Binary" >return p == null || p.Length == 0? SqlDateTime.Null: new SqlDateTime(ToDateTime(p.ToArray()));</from> </group> <default nullvalue="SqlDateTime.Null" nothrow="true"> return ToDateTime(p);</default> </converter> <converter type="SqlGuid"> <group name="Scalar Types."> <from type="Guid" >return p;</from> <from type="String" >return p == null? SqlGuid.Null: SqlGuid.Parse(p);</from> </group> <group name="Nullable Types." nullable="true"> <from type="Guid" >return p.HasValue? p.Value: SqlGuid.Null;</from> </group> <group name="SqlTypes"> <from type="SqlBinary"/> <from type="SqlBytes" >return p.ToSqlBinary().ToSqlGuid();</from> <from type="SqlString"/> <default >return p.ToSqlGuid();</default> </group> <group name="Other Types."> <from type="Type" >return p == null? SqlGuid.Null: p.GUID;</from> <from type="Byte[]" >return p == null? SqlGuid.Null: new SqlGuid(p);</from> <from type="Binary" >return p == null? SqlGuid.Null: new SqlGuid(p.ToArray());</from> </group> <default nullvalue="SqlGuid.Null" nothrow="true"> return ToGuid(p);</default> </converter> <converter type="SqlBinary"> <group name="Scalar Types."> <from type="Byte[]" >return p;</from> <from type="Binary" >return p.ToArray();</from> <from type="Guid" >return p == Guid.Empty? SqlBinary.Null: new SqlGuid(p).ToSqlBinary();</from> </group> <group name="Nullable Types." nullable="true"> <from type="Guid" >return p.HasValue? new SqlGuid(p.Value).ToSqlBinary(): SqlBinary.Null;</from> </group> <group name="SqlTypes"> <from type="SqlBytes"/> <from type="SqlGuid"/> <default >return p.ToSqlBinary();</default> </group> <default nullvalue="SqlBinary.Null" nothrow="true"> return ToByteArray(p);</default> </converter> <converter type="SqlBytes"> <group name="Scalar Types."> <from type="Byte[]" >return p == null? SqlBytes.Null: new SqlBytes(p);</from> <from type="Binary" >return p == null? SqlBytes.Null: new SqlBytes(p.ToArray());</from> <from type="Stream" >return p == null? SqlBytes.Null: new SqlBytes(p);</from> <from type="Guid" >return p == Guid.Empty? SqlBytes.Null: new SqlBytes(p.ToByteArray());</from> </group> <group name="Nullable Types." nullable="true"> <from type="Guid" >return p.HasValue? new SqlBytes(p.Value.ToByteArray()): SqlBytes.Null;</from> </group> <group name="SqlTypes"> <from type="SqlBinary">return p.IsNull? SqlBytes.Null: new SqlBytes(p);</from> <from type="SqlGuid" >return p.IsNull? SqlBytes.Null: new SqlBytes(p.ToByteArray());</from> </group> <default nullvalue="SqlBytes.Null" nothrow="true"> return new SqlBytes(ToByteArray(p));</default> </converter> <converter type="SqlChars"> <group name="Scalar Types."> <from type="String">return p == null? SqlChars.Null: new SqlChars(p.ToCharArray());</from> <from type="Char[]">return p == null? SqlChars.Null: new SqlChars(p);</from> <from type="Byte[]">return p == null? SqlChars.Null: new SqlChars(ToCharArray(p));</from> <from type="Binary">return p == null? SqlChars.Null: new SqlChars(ToCharArray(p.ToArray()));</from> <br/> <include template ="Numeric Types"/> <from type="Char"/> <from type="TimeSpan"/> <from type="DateTime"/> <from type="DateTimeOffset"/> <from type="Guid" /> <default>return new SqlChars(ToString(p).ToCharArray());</default> </group> <group name="Nullable Types." nullable="true"> <include template ="Numeric Types"/> <from type="Char" >return p.HasValue? new SqlChars(new Char[]{p.Value}) : SqlChars.Null;</from> <from type="TimeSpan"/> <from type="DateTime"/> <from type="DateTimeOffset"/> <from type="Guid" /> <default >return p.HasValue? new SqlChars(p.ToString().ToCharArray()): SqlChars.Null;</default> </group> <group name="SqlTypes"> <from type="SqlString">return (SqlChars)p;</from> <include template="SqlTypes"/> <from type="SqlGuid" /> <from type="SqlDateTime" /> <from type="SqlBinary">return p.IsNull? SqlChars.Null: new SqlChars(p.ToString().ToCharArray());</from> <default >return (SqlChars)p.ToSqlString();</default> </group> <from type="Type" >return p == null? SqlChars.Null: new SqlChars(p.FullName.ToCharArray());</from> <default nullvalue="SqlChars.Null" nothrow="true"> return new SqlChars(ToString(p).ToCharArray());</default> </converter> <converter type="SqlXml"> <group name="Scalar Types."> <from type="String" >return p == null? SqlXml.Null: new SqlXml(new XmlTextReader(new StringReader(p)));</from> <br/> <from type="Stream" /> <from type="XmlReader"/> <from type="XmlDocument">return p == null? SqlXml.Null: new SqlXml(new XmlTextReader(new StringReader(p.InnerXml)));</from> <br/> <from type="Char[]" >return p == null? SqlXml.Null: new SqlXml(new XmlTextReader(new StringReader(new string(p))));</from> <from type="Byte[]" >return p == null? SqlXml.Null: new SqlXml(new MemoryStream(p));</from> <from type="Binary" >return p == null? SqlXml.Null: new SqlXml(new MemoryStream(p.ToArray()));</from> <default >return p == null? SqlXml.Null: new SqlXml(p);</default> </group> <group name="SqlTypes"> <from type="SqlString">return p.IsNull? SqlXml.Null: new SqlXml(new XmlTextReader(new StringReader(p.Value)));</from> <from type="SqlChars" >return p.IsNull? SqlXml.Null: new SqlXml(new XmlTextReader(new StringReader(p.ToSqlString().Value)));</from> <from type="SqlBinary">return p.IsNull? SqlXml.Null: new SqlXml(new MemoryStream(p.Value));</from> <from type="SqlBytes" >return p.IsNull? SqlXml.Null: new SqlXml(p.Stream);</from> </group> <default nullvalue="SqlXml.Null"/> </converter> </region> <region name="Other Types"> <converter type="Type"> <group name="Scalar Types."> <from type="String" >return p == null? null: Type.GetType(p); </from> <from type="Char[]" >return p == null? null: Type.GetType(new string(p)); </from> <from type="Byte[]" >return p == null? null: Type.GetTypeFromCLSID(ToGuid(p)); </from> <from type="Binary" >return p == null? null: Type.GetTypeFromCLSID(ToGuid(p.ToArray())); </from> <from type="Guid" >return p == Guid.Empty? null: Type.GetTypeFromCLSID(p); </from> </group> <group name="Nullable Types." nullable="true"> <from type="Guid" >return p.HasValue? Type.GetTypeFromCLSID(p.Value): null;</from> </group> <group name="SqlTypes"> <from type="SqlString">return p.IsNull ? null: Type.GetType(p.Value); </from> <from type="SqlChars" >return p.IsNull ? null: Type.GetType(new string(p.Value));</from> <from type="SqlGuid" >return p.IsNull ? null: Type.GetTypeFromCLSID(p.Value); </from> </group> <default nullvalue="null"/> </converter> <converter type="Stream"> <group name="Scalar Types."> <from type="Guid" >return p == Guid.Empty? Stream.Null: new MemoryStream(p.ToByteArray());</from> <from type="Byte[]" >return p == null? Stream.Null: new MemoryStream(p);</from> <from type="Binary" >return p == null? Stream.Null: new MemoryStream(p.ToArray());</from> </group> <group name="Nullable Types." nullable="true"> <from type="Guid" >return p.HasValue? new MemoryStream(p.Value.ToByteArray()): Stream.Null;</from> </group> <group name="SqlTypes"> <from type="SqlBytes" >return p.IsNull? Stream.Null: p.Stream; </from> <from type="SqlBinary">return p.IsNull? Stream.Null: new MemoryStream(p.Value);</from> <from type="SqlGuid" >return p.IsNull? Stream.Null: new MemoryStream(p.Value.ToByteArray());</from> </group> <default nullvalue="Stream.Null"/> </converter> <converter type="Byte[]" name="ByteArray"> <group name="Scalar Types."> <from type="String" >return p == null? null: System.Text.Encoding.UTF8.GetBytes(p);</from> <from type="Byte" >return new byte[]{p};</from> <from type="SByte" >return new byte[]{checked((Byte)p)};</from> <from type="Decimal"> int[] bits = Decimal.GetBits(p); Byte[] bytes = new Byte[Buffer.ByteLength(bits)]; Buffer.BlockCopy(bits, 0, bytes, 0, bytes.Length); return bytes;</from> <include template="Numeric Types"/> <from type="Char" /> <from type="DateTime" >return ToByteArray(p.ToBinary());</from> <from type="DateTimeOffset" >return ToByteArray(p.LocalDateTime.ToBinary());</from> <from type="TimeSpan" >return ToByteArray(p.Ticks);</from> <from type="Stream" > if (p == null) return null; if (p is MemoryStream) return ((MemoryStream)p).ToArray(); long position = p.Seek(0, SeekOrigin.Begin); Byte[] bytes = new Byte[p.Length]; p.Read(bytes, 0, bytes.Length); p.Position = position; return bytes;</from> <from type="Char[]" > Byte[] bytes = new Byte[Buffer.ByteLength(p)]; Buffer.BlockCopy(p, 0, bytes, 0, bytes.Length); return bytes;</from> <from type="Guid" >return p == Guid.Empty? null: p.ToByteArray();</from> <from type="Binary" >return p == null? null: p.ToArray();</from> <default >return BitConverter.GetBytes(p);</default> </group> <group name="Nullable Types." nullable="true"> <include template="Numeric Types"/> <from type="Char" /> <from type="DateTime" /> <from type="DateTimeOffset" /> <from type="TimeSpan" /> <from type="Guid" /> <default >return p.HasValue? ToByteArray(p.Value): null;</default> </group> <group name="SqlTypes"> <from type="SqlBinary">return p.IsNull? null: p.Value;</from> <from type="SqlBytes" >return p.IsNull? null: p.Value;</from> <from type="SqlGuid" >return p.IsNull? null: p.ToByteArray();</from> <include template="SqlTypes"/> <default >return p.IsNull? null: ToByteArray(p.Value);</default> </group> <default nullvalue="null"/> </converter> <converter type="Binary" name="LinqBinary"> <group name="Scalar Types."> <from type="String" >return p == null? null: new Binary(System.Text.Encoding.UTF8.GetBytes(p));</from> <from type="Byte" >return new Binary(new byte[]{p});</from> <from type="SByte" >return new Binary(new byte[]{checked((Byte)p)});</from> <from type="Decimal"> int[] bits = Decimal.GetBits(p); Byte[] bytes = new Byte[Buffer.ByteLength(bits)]; Buffer.BlockCopy(bits, 0, bytes, 0, bytes.Length); return new Binary(bytes); </from> <include template="Numeric Types"/> <from type="Char" /> <from type="DateTime" >return new Binary(ToByteArray(p.ToBinary()));</from> <from type="DateTimeOffset" >return new Binary(ToByteArray(p.LocalDateTime.ToBinary()));</from> <from type="TimeSpan" >return new Binary(ToByteArray(p.Ticks));</from> <from type="Stream" > if (p == null) return null; if (p is MemoryStream) return ((MemoryStream)p).ToArray(); long position = p.Seek(0, SeekOrigin.Begin); Byte[] bytes = new Byte[p.Length]; p.Read(bytes, 0, bytes.Length); p.Position = position; return new Binary(bytes); </from> <from type="Char[]" > Byte[] bytes = new Byte[Buffer.ByteLength(p)]; Buffer.BlockCopy(p, 0, bytes, 0, bytes.Length); return new Binary(bytes); </from> <from type="Guid" >return p == Guid.Empty? null: new Binary(p.ToByteArray());</from> <from type="Byte[]" >return p == null? null: new Binary(p);</from> <default >return new Binary(BitConverter.GetBytes(p));</default> </group> <group name="Nullable Types." nullable="true"> <include template="Numeric Types"/> <from type="Char" /> <from type="DateTime" /> <from type="DateTimeOffset" /> <from type="TimeSpan" /> <from type="Guid" /> <default >return p.HasValue? new Binary(ToByteArray(p.Value)): null;</default> </group> <group name="SqlTypes"> <from type="SqlBinary">return p.IsNull? null: new Binary(p.Value);</from> <from type="SqlBytes" >return p.IsNull? null: new Binary(p.Value);</from> <from type="SqlGuid" >return p.IsNull? null: new Binary(p.ToByteArray());</from> <include template="SqlTypes"/> <default >return p.IsNull? null: new Binary(ToByteArray(p.Value));</default> </group> <default nullvalue="null"/> </converter> <converter type="Char[]" name="CharArray"> <group name="Scalar Types."> <from type="String" >return p == null? null: p.ToCharArray();</from> </group> <group name="SqlTypes"> <from type="SqlString" >return p.IsNull? null: p.Value.ToCharArray();</from> <from type="SqlChars" >return p.IsNull? null: p.Value;</from> </group> <from type="Byte[]" > if (p == null) return null; Char[] chars = new Char[p.Length / sizeof(Char)]; Buffer.BlockCopy(p, 0, chars, 0, p.Length); return chars; </from> <from type="Binary" > if (p == null) return null; Char[] chars = new Char[p.Length / sizeof(Char)]; Buffer.BlockCopy(p.ToArray(), 0, chars, 0, p.Length); return chars; </from> <default nullvalue="null" nothrow="true"> return ToString(p).ToCharArray();</default> </converter> <converter type="XmlReader"> <group name="Scalar Types."> <from type="String" >return p == null? null: new XmlTextReader(new StringReader(p));</from> </group> <group name="SqlTypes"> <from type="SqlXml" >return p.IsNull? null: p.CreateReader();</from> <from type="SqlString">return p.IsNull? null: new XmlTextReader(new StringReader(p.Value));</from> <from type="SqlChars" >return p.IsNull? null: new XmlTextReader(new StringReader(p.ToSqlString().Value));</from> <from type="SqlBinary">return p.IsNull? null: new XmlTextReader(new MemoryStream(p.Value));</from> <default >return p.IsNull? null: new XmlTextReader(p.Value);</default> </group> <group name="Other Types."> <from type="Stream" /> <from type="TextReader" nick="TR"/> <from type="XmlDocument">return p == null? null: new XmlTextReader(new StringReader(p.InnerXml));</from> <br/> <from type="Char[]" >return p == null? null: new XmlTextReader(new StringReader(new string(p)));</from> <from type="Byte[]" >return p == null? null: new XmlTextReader(new MemoryStream(p));</from> <from type="Binary" >return p == null? null: new XmlTextReader(new MemoryStream(p.ToArray()));</from> <default >return p == null? null: new XmlTextReader(p);</default> </group> <default nullvalue="null"/> </converter> <converter type="XmlDocument"> <group name="Scalar Types."> <from type="String" > if (string.IsNullOrEmpty(p)) return null; XmlDocument doc = new XmlDocument(); doc.LoadXml(p); return doc;</from> </group> <group name="SqlTypes"> <from type="SqlString"/> <from type="SqlXml" /> <from type="SqlChars" >return p.IsNull? null: ToXmlDocument(p.ToSqlString().Value);</from> <from type="SqlBinary">return p.IsNull? null: ToXmlDocument(new MemoryStream(p.Value));</from> <default >return p.IsNull? null: ToXmlDocument(p.Value);</default> </group> <group name="Other Types."> <from type="Stream" /> <from type="TextReader" nick="TR"/> <from type="XmlReader"/> <br/> <from type="Char[]" >return p == null || p.Length == 0? null: ToXmlDocument(new string(p));</from> <from type="Byte[]" >return p == null || p.Length == 0? null: ToXmlDocument(new MemoryStream(p));</from> <from type="Binary" >return p == null || p.Length == 0? null: ToXmlDocument(new MemoryStream(p.ToArray()));</from> <default > if (p == null) return null; XmlDocument doc = new XmlDocument(); doc.Load(p); return doc; </default> </group> <default nullvalue="null"/> </converter> </region> </code>