annotate Source/Mapping/MemberMapper.tt @ 6:11b6da379593

Исправлена странная ошибка при использовании OfType<...>().Where(...)
author cin
date Mon, 05 Dec 2016 05:50:52 +0300
parents f990fcb411a9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1 <#@ template language="C#" debug="True" #>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2 <#@ output extension="generated.cs" #>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3 //---------------------------------------------------------------------------------------------------
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4 // <auto-generated>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5 // This code was generated by BLToolkit template for T4.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6 // Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 // </auto-generated>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8 //---------------------------------------------------------------------------------------------------
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 using System;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 using System.Data.SqlTypes;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 using System.IO;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 using System.Xml;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 using Convert = BLToolkit.Common.Convert;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 namespace BLToolkit.Mapping
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 public partial class MemberMapper
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 <#
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 CreateMapper(SimpleMapper,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 "SByte", "Int16", "Int32", "Int64",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 "Byte", "UInt16", "UInt32", "UInt64",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 "Single", "Double", "Char", "Boolean",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 "DateTime", "DateTimeOffset", "Decimal", "Guid", "Stream");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 CreateMapper(EnumNullableMapper, "SByte", "Int16", "Int32", "Int64", "Byte", "UInt16", "UInt32", "UInt64");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27 CreateMapper(NullableMapper, "Char", "Double", "Single", "Boolean", "DateTime", "Decimal", "Guid");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 #>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 #if !SILVERLIGHT
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 <#
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 CreateMapper(SimpleMapper, "XmlReader", "XmlDocument");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 CreateMapper(SqlTypeMapper, "Byte", "Int16", "Int32", "Int64", "Single", "Boolean", "Double", "DateTime", "Decimal", "Money", "Guid", "String");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 #>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 #endif
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 <#+
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 void CreateMapper(Action<string> mapper, params string[] types)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 foreach (string t in types)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 mapper(t);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47 void SimpleMapper(string type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 string getset = type;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 string cast = "(" + type + ")";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 switch (type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54 case "Stream" :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 case "XmlReader" :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 case "XmlDocument" :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 getset = "Value";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 cast = "";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62 #>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64 class <#= type #>Mapper : MemberMapper
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66 <#= type #> _nullValue;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 <#+
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68 switch (type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 case "Stream" :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71 case "XmlReader" :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72 case "XmlDocument" :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73 break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74 default :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 #>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77 public override bool IsNull (object o) { return false; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78 public override void SetNull(object o) { MemberAccessor.Set<#= type #>(o, _nullValue); }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79 <#+
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80 break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82 #>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84 public override void SetValue(object o, object value)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
86 MemberAccessor.Set<#= getset #>(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
87 o,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
88 value is <#= type #> ? <#= cast #>value :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
89 value == null ? _nullValue : MappingSchema.ConvertTo<#= type #>(value));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
90 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
91
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
92 public override void Init(MapMemberInfo mapMemberInfo)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
93 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
94 if (mapMemberInfo == null) throw new ArgumentNullException("mapMemberInfo");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
95 <#+
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
96 switch (type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
97 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
98 case "Guid" :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
99 #>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
100
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
101 if (mapMemberInfo.NullValue != null)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
102 _nullValue = mapMemberInfo.NullValue is Guid ?
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
103 (Guid)mapMemberInfo.NullValue : new Guid(mapMemberInfo.NullValue.ToString());
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
104 <#+
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
105 break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
106
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
107 case "Stream" :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
108 case "XmlReader" :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
109 case "XmlDocument" :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
110 #>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
111
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
112 if (mapMemberInfo.NullValue != null)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
113 _nullValue = mapMemberInfo.MappingSchema.ConvertTo<#= type #>(mapMemberInfo.NullValue);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
114 <#+
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
115 break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
116
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
117 default:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
118 #>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
119
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
120 _nullValue = Convert.To<#= type #>(mapMemberInfo.NullValue);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
121 <#+
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
122
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
123 break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
124 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
125 #>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
126
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
127 base.Init(mapMemberInfo);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
128 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
129
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
130 public class Nullable : <#= type #>Mapper
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
131 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
132 <#+
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
133 switch (type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
134 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
135 case "Stream" :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
136 case "XmlReader" :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
137 case "XmlDocument" :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
138 break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
139 default:
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
140 #>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
141 public override bool IsNull(object o) { return Get<#= type #>(o) == _nullValue; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
142
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
143 <#+
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
144
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
145 break;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
146 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
147 #>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
148 public override object GetValue(object o)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
149 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
150 var value = MemberAccessor.Get<#= getset #>(o);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
151 return value == _nullValue ? null : (object)value;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
152 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
153 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
154 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
155 <#+
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
156 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
157
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
158 void NullableMapper(string type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
159 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
160 #>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
161
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
162 class Nullable<#= type #>Mapper : MemberMapper
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
163 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
164 public override bool IsNull (object o) { return GetNullable<#= type #>(o) == null; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
165 public override void SetNull(object o) { MemberAccessor.SetNullable<#= type #>(o, null); }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
166
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
167 public override void SetValue(object o, object value)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
168 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
169 MemberAccessor.SetNullable<#= type #>(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
170 o, value == null || value is <#= type #>? (<#= type #>?)value: MappingSchema.ConvertToNullable<#= type #>(value));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
171 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
172 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
173 <#+
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
174 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
175
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
176 void EnumNullableMapper(string type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
177 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
178 #>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
179
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
180 class Nullable<#= type #>Mapper : MemberMapper
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
181 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
182 public override bool IsNull (object o) { return GetNullable<#= type #>(o) == null; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
183 public override void SetNull(object o) { MemberAccessor.SetNullable<#= type #>(o, null); }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
184
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
185 public override void SetValue(object o, object value)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
186 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
187 MemberAccessor.SetNullable<#= type #>(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
188 o, value == null || value is <#= type #>? (<#= type #>?)value: MappingSchema.ConvertToNullable<#= type #>(value));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
189 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
190
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
191 public class Enum : NullableEnumMapper
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
192 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
193 public override void SetValue(object o, object value)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
194 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
195 if (value != null)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
196 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
197 var valueType = value.GetType();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
198
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
199 if (valueType != MemberType)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
200 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
201 if (valueType != UnderlyingType)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
202 value = MappingSchema.ConvertToNullable<#= type #>(value);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
203
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
204 value = System.Enum.ToObject(MemberType, (<#= type #>)value);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
205 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
206 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
207
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
208 MemberAccessor.SetValue(o, value);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
209 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
210 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
211 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
212 <#+
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
213 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
214
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
215 void SqlTypeMapper(string type)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
216 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
217 #>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
218
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
219 class Sql<#= type #>Mapper : MemberMapper
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
220 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
221 public override bool IsNull (object o) { return GetSql<#= type #>(o).IsNull; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
222 public override void SetNull(object o) { MemberAccessor.SetSql<#= type #>(o, Sql<#= type #>.Null); }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
223
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
224 public override object GetValue(object o)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
225 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
226 var value = MemberAccessor.GetSql<#= type #>(o);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
227 return value.IsNull? null: (object)value.Value;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
228 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
229
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
230 public override void SetValue(object o, object value)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
231 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
232 MemberAccessor.SetSql<#= type #>(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
233 o, value is Sql<#= type #>? (Sql<#= type #>)value: MappingSchema.ConvertToSql<#= type #>(value));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
234 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
235
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
236 public class Default : Sql<#= type #>Mapper
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
237 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
238 public override bool SupportsValue { get { return false; } }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
239
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
240 public override object GetValue(object o)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
241 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
242 return MapTo(base.GetValue(o));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
243 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
244
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
245 public override void SetValue(object o, object value)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
246 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
247 base.SetValue(o, MapFrom(value));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
248 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
249 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
250 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
251 <#+
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
252 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
253
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
254 #>