Skip to content
This repository was archived by the owner on Dec 24, 2022. It is now read-only.

Commit 49ea445

Browse files
committed
Add DialectProvider-specific ExecFilter which takes precedence over OrmLiteConfig.ExecFilter
1 parent fdd1129 commit 49ea445

File tree

4 files changed

+23
-10
lines changed

4 files changed

+23
-10
lines changed

src/ServiceStack.OrmLite.Oracle/OracleOrmLiteDialectProvider.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,7 @@ public OracleOrmLiteDialectProvider(bool compactGuid, bool quoteNames, string cl
7272
ParamString = ":";
7373

7474
NamingStrategy = new OracleNamingStrategy(MaxNameLength);
75-
// Beware, this is setting a static filter which can get used by other providers if multiple concurrent different
76-
// providers. That should be harmless as the filter will no-op fairly cheaply for non-Oracle situations.
77-
OrmLiteConfig.ExecFilter = new OracleExecFilter();
75+
ExecFilter = new OracleExecFilter();
7876
}
7977

8078
public override void OnAfterInitColumnTypeMap()

src/ServiceStack.OrmLite/IOrmLiteDialectProvider.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ namespace ServiceStack.OrmLite
1919
{
2020
public interface IOrmLiteDialectProvider
2121
{
22+
IOrmLiteExecFilter ExecFilter { get; set; }
23+
2224
int DefaultStringLength { get; set; }
2325

2426
string ParamString { get; set; }

src/ServiceStack.OrmLite/OrmLiteConfig.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,17 @@ public static IDbConnection ToDbConnection(this string dbConnectionStringOrFileP
100100

101101
public static bool StripUpperInLike { get; set; }
102102

103-
public static IOrmLiteExecFilter ExecFilter = new OrmLiteExecFilter();
103+
private static IOrmLiteExecFilter execFilter;
104+
public static IOrmLiteExecFilter ExecFilter
105+
{
106+
get
107+
{
108+
return dialectProvider != null
109+
? dialectProvider.ExecFilter ?? execFilter
110+
: execFilter;
111+
}
112+
set { execFilter = value; }
113+
}
104114

105115
public static Action<IDbCommand, object> InsertFilter { get; set; }
106116
public static Action<IDbCommand, object> UpdateFilter { get; set; }

src/ServiceStack.OrmLite/OrmLiteDialectProviderBase.cs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,13 @@ public abstract class OrmLiteDialectProviderBase<TDialect>
3030
{
3131
protected static readonly ILog Log = LogManager.GetLogger(typeof(IOrmLiteDialectProvider));
3232

33+
protected OrmLiteDialectProviderBase()
34+
{
35+
UpdateStringColumnDefinitions();
36+
StringSerializer = new JsvStringSerializer();
37+
ExecFilter = new OrmLiteExecFilter();
38+
}
39+
3340
[Conditional("DEBUG")]
3441
private static void LogDebug(string fmt, params object[] args)
3542
{
@@ -90,6 +97,8 @@ SMALLDATETIME DbType.DateTime
9097
*/
9198
#endregion
9299

100+
public IOrmLiteExecFilter ExecFilter { get; set; }
101+
93102
private static ILog log = LogManager.GetLogger(typeof(OrmLiteDialectProviderBase<>));
94103

95104
public string StringLengthNonUnicodeColumnDefinitionFormat = "VARCHAR({0})";
@@ -118,12 +127,6 @@ public string MaxStringColumnDefinition
118127
public string TimeColumnDefinition = "BIGINT";
119128
public string DateTimeOffsetColumnDefinition = "DATETIMEOFFSET";
120129

121-
protected OrmLiteDialectProviderBase()
122-
{
123-
UpdateStringColumnDefinitions();
124-
StringSerializer = new JsvStringSerializer();
125-
}
126-
127130
private int defaultDecimalPrecision = 18;
128131
private int defaultDecimalScale = 12;
129132

0 commit comments

Comments
 (0)