-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Figure out what to do about SqlClient 4.0 #4019
Comments
Unless they change their connection string? |
Notes from triage:
|
Detect that SQL Client 4 is in use, and if Encrypt=false, log a warning? |
Hi all, I would just like to reiterate the importance of effective communication regarding the breaking change of Encrypt=true. At present, updating to SqlClient 4.0 results in a cryptic failure message which is tripping-up users directly consuming the SqlClient library -see issue 1402 in the SqlClient repo- so I feel like it's doubly-important for EF Core to help its users here (myself included), as they are not taking a direct dependency on the SqlClient library. This could be a "ticking time bomb" of poor developer experience! In my case, I'm developing a .NET Core application on a Mac (macOS Monterey 12.2.1), and upon updating to SqlClient 4.0, I can no longer connect to my local database running inside an Azure SQL Edge Docker container. Likewise I can no longer connect to Amazon RDS databases from my machine. I imagine these are very common use-cases that are broken after the update. In both cases, setting I certainly agree in-principle with the requirement to encrypt connections, but I think the crux of the issue here is that attempting to do things the Right Way throws us developers into the deep-end of x509 certificate chains, trusted root stores, etc. It's difficult even to find out which certificates are in use by SQL Server! I had to resort to this gist just to find that out 😬 Even more frustrating than reading the certificates is that trusting them seems to be an OS-level change, which simply may not be possible in serverless or CI/CD environments. Naively, I feel like it would be great if I could install these certificates into my .NET application, rather than the OS. Maybe that's possible, maybe it's not- maybe there's a super-easy way to do this that I just haven't figured out yet. But this is exactly what I think the documentation needs to cover! Thanks for your time :) |
Due to a major breaking change in SqlClient 4.0, updating to 4.0 breaks all tests that do not use LocalDb.
Updating will also break the majority of applications using EF Core.
The text was updated successfully, but these errors were encountered: