我剛剛從Npgsql的V2.2.3升級到使用精緻小巧和SimpleCRUD的系統上v3.2.4.1(現爲V3.2.5)被稱爲 - 其他開發商缺席後者的定製版本。它不是我的領域 - 我只是想用v3支持做一些PostGIS位...Dapper.SqlMapper.AddTypeHandler似乎不是在Postgres SimpleCRUD where子句
我們有一個自定義版本的DateTime,在Npgsql v3.x更嚴格的類型下,要求我們將NpgsqlDbType設置爲NpgsqlTypes.NpgsqlDbType.Timestamp。這是通過SimpleCRUD代碼中的Dapper.SqlMapper.AddTypeHandler完成的。自定義版本強制日期時間種類爲UTC。
雖然這個工程如預期的數據庫插入,它似乎並不時WHERE子句中使用被稱爲 - 不知道,如果它只是在個別情況下,或者只是在一個兩個地方。
我可以從,爲WHERE子句的參數被調整UTC /本地轉換Postgres的日誌中看到:參數:$ 1 = '2017年7月27日13:29:51 + 01'
通過斷點,我還可以看到該類型的處理程序沒有被輸入的WHERE子句,但對於INSERT等
問題:
我應該期待被調用的Dapper.SqlMapper類型處理器WHERE子句參數?
如果它不是預期的行爲,如何在使用Dapper.SimpleCRUD時強制將NpgsqlDbType強制爲NpgsqlTypes.NpgsqlDbType.Timestamp?
非常感謝
我已經更新到Npgsql的(3.2.5)和小巧玲瓏(1.50.2)的最新NuGet包。不確定Dapper.SimpleCRUD的起源,但它將在2014年開始生效,然後纔會被看作是潛在的大量定製,所以寧願繼續這樣做,而不是升級並重新添加定製。