internal static StatementModificationInfo GetModificationInfo() { LocalDataStoreSlot modificationData = Thread.GetNamedDataSlot(KEY_MODIFICATIONSTORE); StatementModificationInfo smi = (StatementModificationInfo)Thread.GetData(modificationData); return(smi); }
public void AddToModificationManager() { if (IsValid) { StatementModificationInfo smInfo = DbStatementModificationManager.GetModificationInfo(); if (smInfo == null) { smInfo = new StatementModificationInfo(); } smInfo.Modifiers[ModificationTypeKey] = this; DbStatementModificationManager.ExposeModificationInfoDataProvider(smInfo); } }
internal static string ModifyDbStatement(string statementName, string originalStatement) { string val = originalStatement; StatementModificationInfo smi = GetModificationInfo(); if (smi != null && smi.Modifiers != null && smi.Modifiers.Count > 0) { foreach (DbStatementModifierBase modifier in smi.Modifiers.Values) { if (statementName.Equals(modifier.StatementName, StringComparison.Ordinal)) { val = modifier.ProcessStatement(val); } } } return(val); }
public static void ExposeModificationInfoDataProvider(StatementModificationInfo smi) { LocalDataStoreSlot modificationData = Thread.GetNamedDataSlot(KEY_MODIFICATIONSTORE); Thread.SetData(modificationData, smi); }