我需要將參數傳遞給SQL語句,使用Firebird ADO一切正常,但是與InterBase ADO有一個問題。 我的代碼:Dapper映射字符串參數爲AnsiString
result = conn.Query<DestClass>(sqlCmd, new
{
stringParam = stringVal,
intParam1 = intVal1,
intParam2 = intVal2
}).Single();
有了,我已經得到了FormatException
,但是當我定義參數與DynamicParameters
和設置DbType.AnsiString
爲StringParam中,SQL效果很好。但是當我需要傳遞字符串時,我在代碼中有很多地方,我不想在所有地方改變它。
然後我發現我可以使用Dapper.SqlMapper.AddTypeMap(typeof(String), DbType.AnsiString);
但我不能。我有Common Language Runtime detected an invalid program.
如何解決此問題?
編輯
它看起來像問題在小巧玲瓏V1.22解決。
有趣的提議,但我的直覺反應是不舒服的API的想法,他的行爲取決於調用程序集中的屬性。性能,內聯和可維護性(特別是通過將類移動到不同的組件中可以改變行爲的事實)? – Joe
@Joe il-merge確實會使事情複雜化 –
感謝您的迴應,但'stringParam = new DbString {Value = stringVal,IsAnsi = true}'不起作用。只有當我用'DynamicParameters'傳遞參數時,它才能正常工作。你能向我解釋我應該如何使用'[assembly:SomeName(blah)]'? –