We have cases where we should vary our SQL based on the target SQL Server version (e.g. #30161); to support that, we should introduce a way for users to tell us the target version, in the DbContext options. We should default to "latest", allowing users to specify older versions. We should also allow users to explicitly tell us that they're using Azure SQL, as that could have an impact on some things (e.g. execution strategy).