You've already forked Extensions.Configuration.EntityFrameworkCore
Improve exception/error handling
This commit is contained in:
@@ -7,8 +7,8 @@ This library enhances `RAIC.Extensions.Configuration.EntityFrameworkCore` with s
|
||||
|
||||
## Goals
|
||||
1. No polling!
|
||||
1. Updates happen in background via worker service (`IHostedService`)
|
||||
1. Only update settings which change rather than reloading all of them
|
||||
1. Updates happen in background via a [hosted service](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/host/hosted-services) implementation
|
||||
1. Only update settings which change rather than updating them all
|
||||
|
||||
|
||||
## Requirements
|
||||
@@ -17,13 +17,16 @@ This library enhances `RAIC.Extensions.Configuration.EntityFrameworkCore` with s
|
||||
## Gotchas
|
||||
* Won't work with Azure SQL until Microsoft adds/enables Service Broker support
|
||||
* Setting values cannot be `null` (as signified by the `RequiredAttribute` on `ISetting.Value`)
|
||||
* Consider adding `ConnectRetryCount` and `ConnectRetryInterval` [parameters](https://learn.microsoft.com/en-us/dotnet/framework/data/adonet/whats-new#sqlclient-data-provider) to your connection string if not already present
|
||||
|
||||
## Known Issues
|
||||
* Not tested under load
|
||||
* Transient failure detection logic is not well tested given the challenges in reproducing these issues
|
||||
|
||||
## Configuration Options
|
||||
There is a single property which can be configured (cf. the `SqlServerNotificationConfigurationReloaderOptions` POCO)
|
||||
There are two properties which can be configured (cf. the `SqlServerNotificationConfigurationReloaderOptions` POCO)
|
||||
1. `ConnectionString` - the full connection string for the SQL Server instance
|
||||
1. `TransientErrors` - the list of `SqlError.Number` values that will be treated as transient if present in a thrown `SqlException`'s `Errors` collection while listening for or processing notifications (ie. reconnection will be attempted if any are present)
|
||||
|
||||
## Setup
|
||||
For `SqlServerNotificationConfigurationReloader` to work it requires Change Tracking to be enable on the `Settings` table (and therefore also on the database itself)
|
||||
@@ -37,7 +40,7 @@ ALTER TABLE dbo.Settings
|
||||
ENABLE CHANGE_TRACKING;
|
||||
```
|
||||
|
||||
Reccommend adding your SQL to the migration which adds the `Settings` table/view (or a new migration if that table/view already exists).
|
||||
Recommend adding your SQL to the migration which adds the `Settings` table/view (or a new migration if that table/view already exists).
|
||||
|
||||
## Usage Example
|
||||
|
||||
|
||||
Reference in New Issue
Block a user