Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ CreateStorage()

static DataStorage System.Data.Common.DataStorage.CreateStorage ( DataColumn column,
[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields | DynamicallyAccessedMemberTypes.PublicProperties)] Type dataType,
StorageType typeCode )
inlinestaticinherited

Definition at line 229 of file DataStorage.cs.

230 {
231 if (typeCode == StorageType.Empty && null != dataType)
232 {
233 if (typeof(INullable).IsAssignableFrom(dataType))
234 {
235 return new SqlUdtStorage(column, dataType);
236 }
237 return new ObjectStorage(column, dataType);
238 }
239 return typeCode switch
240 {
241 StorageType.Empty => throw ExceptionBuilder.InvalidStorageType(TypeCode.Empty),
242 StorageType.DBNull => throw ExceptionBuilder.InvalidStorageType(TypeCode.DBNull),
243 StorageType.Boolean => new BooleanStorage(column),
244 StorageType.Char => new CharStorage(column),
245 StorageType.SByte => new SByteStorage(column),
246 StorageType.Byte => new ByteStorage(column),
247 StorageType.Int16 => new Int16Storage(column),
248 StorageType.UInt16 => new UInt16Storage(column),
249 StorageType.Int32 => new Int32Storage(column),
250 StorageType.UInt32 => new UInt32Storage(column),
251 StorageType.Int64 => new Int64Storage(column),
252 StorageType.UInt64 => new UInt64Storage(column),
253 StorageType.Single => new SingleStorage(column),
254 StorageType.Double => new DoubleStorage(column),
255 StorageType.Decimal => new DecimalStorage(column),
256 StorageType.DateTime => new DateTimeStorage(column),
257 StorageType.TimeSpan => new TimeSpanStorage(column),
258 StorageType.String => new StringStorage(column),
259 StorageType.Guid => new ObjectStorage(column, dataType),
260 StorageType.ByteArray => new ObjectStorage(column, dataType),
261 StorageType.CharArray => new ObjectStorage(column, dataType),
262 StorageType.Type => new ObjectStorage(column, dataType),
263 StorageType.DateTimeOffset => new DateTimeOffsetStorage(column),
264 StorageType.BigInteger => new BigIntegerStorage(column),
265 StorageType.Uri => new ObjectStorage(column, dataType),
266 StorageType.SqlBinary => new SqlBinaryStorage(column),
267 StorageType.SqlBoolean => new SqlBooleanStorage(column),
268 StorageType.SqlByte => new SqlByteStorage(column),
269 StorageType.SqlBytes => new SqlBytesStorage(column),
270 StorageType.SqlChars => new SqlCharsStorage(column),
271 StorageType.SqlDateTime => new SqlDateTimeStorage(column),
272 StorageType.SqlDecimal => new SqlDecimalStorage(column),
273 StorageType.SqlDouble => new SqlDoubleStorage(column),
274 StorageType.SqlGuid => new SqlGuidStorage(column),
275 StorageType.SqlInt16 => new SqlInt16Storage(column),
276 StorageType.SqlInt32 => new SqlInt32Storage(column),
277 StorageType.SqlInt64 => new SqlInt64Storage(column),
278 StorageType.SqlMoney => new SqlMoneyStorage(column),
279 StorageType.SqlSingle => new SqlSingleStorage(column),
280 StorageType.SqlString => new SqlStringStorage(column),
281 _ => new ObjectStorage(column, dataType),
282 };
283 }

References System.Xml.Dictionary, and System.Data.ExceptionBuilder.InvalidStorageType().

Referenced by System.Data.DataColumn.InsureStorage().