forked from nhibernate/nhibernate-core
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSql2008ClientDriver.cs
38 lines (33 loc) · 1.08 KB
/
Sql2008ClientDriver.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using System;
using System.Data;
using System.Data.Common;
using NHibernate.Util;
namespace NHibernate.Driver
{
public class Sql2008ClientDriver : SqlClientDriver
{
const byte MaxTime = 5;
#if NETFX
private static readonly Action<object, SqlDbType> SetSqlDbType = (p, t) => ((System.Data.SqlClient.SqlParameter) p).SqlDbType = t;
#else
private static readonly Action<object, SqlDbType> SetSqlDbType = DelegateHelper.BuildPropertySetter<SqlDbType>(System.Type.GetType("System.Data.SqlClient.SqlParameter, System.Data.SqlClient", true), "SqlDbType");
#endif
protected override void InitializeParameter(DbParameter dbParam, string name, SqlTypes.SqlType sqlType)
{
base.InitializeParameter(dbParam, name, sqlType);
switch (sqlType.DbType)
{
case DbType.Time:
SetSqlDbType(dbParam, SqlDbType.Time);
dbParam.Size = MaxTime;
break;
case DbType.Date:
SetSqlDbType(dbParam, SqlDbType.Date);
break;
}
}
public override bool RequiresTimeSpanForTime => true;
/// <inheritdoc />
public override DateTime MinDate => DateTime.MinValue;
}
}