इसे समझ लिया!
स्पष्ट रूप से रूपांतरण पत्रक I लिंक किया गया to या तो गलत है या पुराना है। यह पता चला है कि एक Postgresql "time" ऑब्जेक्ट में उचित रूपांतरण करने के लिए Npgsql के लिए एक System.TimeSpan ऑब्जेक्ट की आवश्यकता होती है। यह मेरे लिए अजीब लगता है कि वे कुछ ऐसा बदलने की कोशिश करेंगे जो दो समय के बीच के अंतर को दर्शाता है जिसे हम एचएच:एमएम:एसएस के रूप में सोचते हैं लेकिन ऐसा ही है।
मेरी रनटाइम प्रॉपर्टी के प्रकार को System.DateTime से System.TimeSpan में बदलने के बजाय मैंने इसके बजाय एक कस्टम IUserType बनाया है और NullSafeSet को इस तरह दिखने के लिए ओवरराइड किया है
public override void NullSafeSet(IDbCommand cmd, object value, int index)
{
var obj = (DateTime)value;
((IDbDataParameter) cmd.Parameters[index]).Value = new TimeSpan(0, obj.Hour, obj.Minute, obj.Second);
}