馬特,
這可以很容易的。我做了這個變化來清潔SQL char空間,我已經測試過它如果由於變化導致速度緩慢,我的代碼不會顯示任何跡象。
第一個確保您備份您的退出源代碼,以便在您需要時更容易恢復。
下一頁創建以下方法:
public static string ReadString(object value) /*** CUSTOM CODE ***/
{
if (value == null || value is DBNull) return null;
return value.ToString().Trim();
}
我總是刻度/ *自定義代碼我所有的代碼更改* /讓我以後可以很容易地找到我的變化
下一頁找到以下方法:
public static void SetTypeMap(Type type, ITypeMap map)
現在這種方法找到以下行:
if (memberType == typeof (char) || memberType == typeof (char?))
{
il.EmitCall(OpCodes.Call, typeof (SqlMapper).GetMethod(
memberType == typeof (char) ? "ReadChar" : "ReadNullableChar",
BindingFlags.Static | BindingFlags.Public), null);
// stack is now [target][target][typed-value]
}
else
,並修改爲:
if (memberType == typeof (char) || memberType == typeof (char?))
{
il.EmitCall(OpCodes.Call, typeof (SqlMapper).GetMethod(
memberType == typeof (char) ? "ReadChar" : "ReadNullableChar",
BindingFlags.Static | BindingFlags.Public), null);
// stack is now [target][target][typed-value]
}
else if (memberType == typeof(string)) /*** CUSTOM CODE START ***/
{
il.EmitCall(OpCodes.Call, typeof(SqlMapper).GetMethod("ReadString", BindingFlags.Static | BindingFlags.Public), null);
// stack is now [target][target][typed-value]
} /*** CUSTOM CODE END ***/
else
編譯,你準備好去
什麼數據庫你在使用它的'傳統名稱'訪問? Interbase的? ...等 – MethodMan 2013-03-15 15:56:00
道歉,其實際MS SQL服務器。 – Moffmo 2013-03-15 16:14:29
那麼你是在尋找一個全面的屬性設置器,但是在服務器上的LTRIM(RTRIM(...))的性能,使得查詢每次都會在服務器端自動修剪? – Todd 2013-03-16 03:48:17