Update ATS user API.
Batching configured on the connection, not on the service collection.
Delegate table creation/deletion to DataStoreCreator.
Fluent extensions modified.
Merge branch 'ats-api' into dev
Continuing problems with the pipe... (Add small sleep to no process failure retries)

Dear SQLClient,

In our sessions together we have made significant progress in understanding your issues with finding no processes at the end of your pipe. However, in reviewing your records on the CI server I notice that you are occasionally still confused about what is in your pipe. I recommend we extend your therapy to include short periods of sleep between failed pipe usages. I know that the community generally frowns on such things, but in this case where you may potentially avoid throwing an exception (and failing the CI) I feel it is worth a try. I'll check back with you in a few weeks to see if the extra sleep has improved your mini pipe/process existential crises.

Wishing you all the best,
The Pipe Doctor
There is something rotten in the state of Denmark
Fixing unit tests breaking on da-DK systems,
due to å = aa (last letter in Danish alphabet)
Ats functional tests skip on execution, not discovery
Merge pull request #383 from aspnet/ats627

Ats functional tests skip on execution, not discovery
Recorder destruction... (Removing temporary sequence instrumentation code)

The instrumentation code added this morning provided the results it was designed for. This change removes the code and re-disables the test.
Added code to generate sql for automatically creating/dropping the history table when running migrations.
Fixed a few issues with migrations discovered recently.
Refactored outgoing requests into command pattern
Intra-query result caching
Code cleanup and remove unnecessary wrapper
removing storage name from Metadata as first class citizen, replacing it with annotations where appropriate. CR: Emil, Arthur, Andrew, Nate
Refactored query pipeline for ats. It builds a query filter expression and
later converts this into an executable table query.
Add full SQLite Northwind database
Updating ILogger descendants for interface change.
Initial support for relational query flattening
Fix polycheck break.
Finish some TODOs.
Cache instances of adapters.
Allow user access to request options for the connection (timeout, failover, property resolver)
Better synchronous batch command execution.
Whitespace corrections.
More logging and warnings. Add README.md.
Fix bug in writing to shadow state properties. Renamed extension methods to match annotation name.
Sidecars 7, Brazil 1... (Propagate generated principal values to FKs on SaveChanges)

Some primary/principal key values are generated in the store when the entity is saved--for example, for Identity columns. These values are written back into the state entry by the update pipeline. Foreign keys that reference these principal key values also need to be updated with the generated values so that the entire graph stays in sync and so that subsequent commands issued by the update pipeline make use of the newly generated values. Also, if the save transaction is not committed, then these generated values should be discarded.

Values written into the state manager by the update pipeline are placed in a temporary transparent sidecar so that they can be discarded later. When a change is detected (or notification is made) that a principal property has changed, then the state manager now finds dependents and updates FK values appropriately. These are also written into the transparent sidecar so that the update pipeline can read them like normal values for subsequent commands, but the values can still be discarded if SaveChanges fails.

Still working on some tests.
Handling null principal keys in the update pipeline and more robust key value comparison.