数据库
首页 > 数据库> > c#-OrmLite LocalDate到DateTime转换器未应用于SqlLite内存Db的子句

c#-OrmLite LocalDate到DateTime转换器未应用于SqlLite内存Db的子句

作者:互联网

Referenced Code

我正在尝试解决的问题

使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