c#-OrmLite LocalDate到DateTime转换器未应用于SqlLite内存Db的子句
作者:互联网
我正在尝试解决的问题
使ValuationsCommanderTests.SetTransactionAndRelatedEmbeddedDerivativevaluationsToBad_ValidInput_CorrectlyManipulatesDB()通过.
尝试解决问题
调试它之后,我缩小了它无法通过的原因,因为私有方法ValuationsCommander.SetRelatedDailyTransactionHistoryRecordsToBad从未更新记录,因为尽管它已为此注册了一个转换器,但它是如何转换(或不转换)NodaTime的LocalDate的类型.
该方法生成的SQL的示例如下
UPDATE "cfo_daily_trans_hist" SET "dh_sn_scenario_id"=@dh_sn_scenario_id
WHERE (("dh_tq_tran_quote_id" = @0) AND ('Saturday, November 13, 1993' <= "dh_val_time_stamp"))
从我看来,从LocalDate到DateTime的转换没有发生,而是决定通过toString而不是DateTime比较来进行比较.
我认为可能导致此问题的一些原因如下:
>方言提供者未正确注册NodeTime转换器
>使用具有DateTime作为其ValuationTimeStamp类型的虚拟类创建DailyTransactionhistoryTableModel.
这些似乎都不是根本问题,而且我已经用不了解决此问题的方法.
关于OrmLite如何利用转换器,或者我可能尝试解决此问题的任何其他事情,我是否不了解?
解决方法:
像往常一样,感谢@mythz解决了这一问题.
标签:nodatime,servicestack,ormlite-servicestack,datetime,c 来源: https://codeday.me/bug/20191110/2013255.html