Hello
I'm creating the following code:
var timeFilter = new EntityField2("timeEnd", new DbFunctionCall("({0} + {1} *'1 second'::interval)", new object[] { BackgroundTasksQueueFields.ModifiedAt, BackgroundTasksQueueFields.ValidityTime }), typeof(DateTime));
IRelationPredicateBucket filter = new RelationPredicateBucket(
BackgroundTasksQueueFields.IdBackgroundQueueState =='BQS_RUN'
& timeFilter < DateTime.utcNow);
BackgroundTasksQueueEntity updateEntity = new BackgroundTasksQueueEntity();
updateEntity.ExecuteAfter = DateTime.UtcNow.AddMinutes(2);
updateEntity.IdBackgroundQueueState = 'BQS_QUEU';
UpdateEntitiesDirectly(adapter, entity, filter);
For this code LLBLGen create following query:
Query: UPDATE "queue"."background_tasks_queue" SET "execute_after"=:p1, "id_background_queue_state"=:p2 WHERE ( ( ( "queue"."background_tasks_queue"."id_background_queue_state" = :p3 AND ("queue"."background_tasks_queue"."modified_at" + "queue"."background_tasks_queue"."validity_time" *'1 second'::interval) < :p5)))
Parameter: :p1 : DateTime. Length: 0. Precision: 0. Scale: 0. Direction: Input. Value: 2014-11-13T10:39:22.1845828.
Parameter: :p2 : String. Length: 1073741824. Precision: 0. Scale: 0. Direction: Input. Value: "BQS_QUEU".
Parameter: :p3 : String. Length: 1073741824. Precision: 0. Scale: 0. Direction: Input. Value: "BQS_RUN".
Parameter: :p5 : Date. Length: 0. Precision: 0. Scale: 0. Direction: Input. Value: 2014-11-13 00:00:00.
In my opinion the created query is incorrect. Why parameter p5 have type Date? It should be DateTime because I want filter by date with time.
Maybe I do something wrong?
I'm using LLBLGen ver: 4.2 with Postgresql 9.29.