| 0 | 1 <# | 
|  | 2 | 
|  | 3 OneToManyAssociationType = OneToManyAssociationType.Replace("<", "(Of ").Replace(">", ")"); | 
|  | 4 | 
|  | 5 WriteComment        = (tt,s) => WriteLine("'{0}", s); | 
|  | 6 WriteUsing          = (tt,s) => WriteLine("Imports {0}", s); | 
|  | 7 WriteBeginNamespace = (tt,s) => { WriteLine("Namespace {0}", s); WriteLine(""); }; | 
|  | 8 WriteEndNamespace   =  tt    => { WriteLine(""); WriteLine("End Namespace");    }; | 
|  | 9 WriteBeginClass     = (tt,cl,bc) => | 
|  | 10 { | 
|  | 11 	WriteLine("Public Partial Class {0}", cl); | 
|  | 12 	if (!string.IsNullOrEmpty(bc)) | 
|  | 13 		WriteLine("\tInherits {0}", bc); | 
|  | 14 }; | 
|  | 15 WriteEndClass       =  tt    => WriteLine("End Class"); | 
|  | 16 MakeGenericType     = (c,t)  => string.Format("{0}(Of {1})", c, t); | 
|  | 17 WriteTableProperty  = (tt,name,pname,maxlen,maxplen) => | 
|  | 18 { | 
|  | 19 	WriteLine(""); | 
|  | 20 	WriteLine("Public ReadOnly Property {0}(){1} As Table(Of {2})", pname, LenDiff(maxplen, pname), name); | 
|  | 21 	WriteLine("\tGet"); | 
|  | 22 	WriteLine("\t\tReturn Me.GetTable(Of {0})()", name); | 
|  | 23 	WriteLine("\tEnd Get"); | 
|  | 24 	WriteLine("End Property"); | 
|  | 25 }; | 
|  | 26 WriteAttribute      = (tt,a) => WriteLine("<{0}> _", a.Replace("=", ":=")); | 
|  | 27 WriteAttributeLine  =  tt    => {}; | 
|  | 28 | 
|  | 29 RenderColumn = (tt,c,maxLens,attrs) => | 
|  | 30 { | 
|  | 31 	WriteLine(""); | 
|  | 32 | 
|  | 33 	var type = MakeType(c.Type); | 
|  | 34 | 
|  | 35 	if (!tt.RenderField) | 
|  | 36 		WriteLine("Private _{0} As {1}", c.MemberName, type); | 
|  | 37 | 
|  | 38 	attrs = attrs.Where(_ => _ != null).ToArray(); | 
|  | 39 | 
|  | 40 	if (attrs.Length > 0) | 
|  | 41 		WriteLine("<{0}> _", string.Join(", ", attrs).Replace("=", ":=")); | 
|  | 42 | 
|  | 43 	if (tt.RenderField) | 
|  | 44 		WriteLine("Public {0} As {1}", c.MemberName, type); | 
|  | 45 	else | 
|  | 46 	{ | 
|  | 47 		WriteLine("Public Property {0} As {1}", c.MemberName, type); | 
|  | 48 		WriteLine("\tGet"); | 
|  | 49 		WriteLine("\t\tReturn Me._{0}", c.MemberName); | 
|  | 50 		WriteLine("\tEnd Get"); | 
|  | 51 		WriteLine("\tSet"); | 
|  | 52 		WriteLine("\t\tMe._{0} = value", c.MemberName); | 
|  | 53 		WriteLine("\tEnd Set"); | 
|  | 54 		WriteLine("End Property"); | 
|  | 55 	} | 
|  | 56 }; | 
|  | 57 | 
|  | 58 RenderForeignKey = (tt,key) => | 
|  | 59 { | 
|  | 60 	WriteComment(tt, " " + key.KeyName); | 
|  | 61 | 
|  | 62 	var type = "" ; | 
|  | 63 	if (key.AssociationType == AssociationType.OneToMany) | 
|  | 64 		type = string.Format(OneToManyAssociationType, key.OtherTable.ClassName); | 
|  | 65 	else | 
|  | 66 		type = key.OtherTable.ClassName ; | 
|  | 67 | 
|  | 68 	if (!RenderField) | 
|  | 69 		WriteLine("Private _{0} As {1}", key.MemberName, type); | 
|  | 70 | 
|  | 71 	WriteLine("<Association(ThisKey:=\"{0}\", OtherKey:=\"{1}\")> _", | 
|  | 72 		string.Join(", ", (from c in key.ThisColumns  select c.MemberName).ToArray()), | 
|  | 73 		string.Join(", ", (from c in key.OtherColumns select c.MemberName).ToArray())); | 
|  | 74 | 
|  | 75 	if (RenderField) | 
|  | 76 		WriteLine("Public {0} As {1}", key.MemberName, type); | 
|  | 77 	else | 
|  | 78 	{ | 
|  | 79 		WriteLine("Public Property {0} As {1}", key.MemberName, type); | 
|  | 80 		WriteLine("\tGet"); | 
|  | 81 		WriteLine("\t\tReturn Me._{0}", key.MemberName); | 
|  | 82 		WriteLine("\tEnd Get"); | 
|  | 83 		WriteLine("\tSet"); | 
|  | 84 		WriteLine("\t\tMe._{0} = value", key.MemberName); | 
|  | 85 		WriteLine("\tEnd Set"); | 
|  | 86 		WriteLine("End Property"); | 
|  | 87 	} | 
|  | 88 }; | 
|  | 89 | 
|  | 90 MakeType = t => | 
|  | 91 { | 
|  | 92 	switch (t) | 
|  | 93 	{ | 
|  | 94 		case "byte[]"   : return "Byte()"; | 
|  | 95 		case "string"   : return "String"; | 
|  | 96 		case "byte"     : return "Byte"; | 
|  | 97 		case "byte?"    : return "Byte?"; | 
|  | 98 		case "bool"     : return "Boolean"; | 
|  | 99 		case "bool?"    : return "Boolean?"; | 
|  | 100 		case "object"   : return "Object"; | 
|  | 101 		case "short"    : return "Short"; | 
|  | 102 		case "short?"   : return "Short?"; | 
|  | 103 		case "decimal"  : return "Decimal"; | 
|  | 104 		case "decimal?" : return "Decimal?"; | 
|  | 105 		case "int"      : return "Integer"; | 
|  | 106 		case "int?"     : return "Integer?"; | 
|  | 107 		case "float"    : return "Single"; | 
|  | 108 		case "float?"   : return "Single?"; | 
|  | 109 		case "double"   : return "Double"; | 
|  | 110 		case "double?"  : return "Double?"; | 
|  | 111 		case "long"     : return "Long"; | 
|  | 112 		case "long?"    : return "Long?"; | 
|  | 113 	} | 
|  | 114 | 
|  | 115 	return t; | 
|  | 116 }; | 
|  | 117 #> |