We're updating the issue view to help you get more done. 

Integrate executable queries with DomainObjectQueryExecutor

Description

Change DomainObjectQueryExecutor to use the new generic CreateScalarQuery/CreateCollectionQuery overloads:

  • ExecuteScalar should be reimplemented to use CreateScalarQuery<T>.

    • If any fetch requests are found within the query (i.e., "RemoveTrailingFetchRequests" returns a non-empty collection), throw a NotSupportedException: Scalar queries cannot perform eager fetching.

    • Use Execute to get the value and return it.

    • I think all of those conversions (from null/DBNull.Value, Convert.ChangeType) are no longer required.

  • ExecuteCollection should be reimplemented to use CreateSequenceQuery<T>.

    • Use Execute to get the sequence and return it.

  • ExecuteSingle should call ExecuteCollection, just like it already does, but it must no longer call ExecuteScalar. Remove the injected _storageTypeInformationProvider, it shouldn't be used any longer.

  • Remove now unused DomainObjectQueryGenerator.CreateQuery method.

  • Remove now unused SqlQueryGeneratorResult.QueryKind.GroupQuery.

  • Enable integration tests.

Assignee

Fabian Schmied

Reporter

Fabian Schmied

Labels

None

Time tracking

2h

Components

Fix versions

Priority

Normal
Configure