FirebirdSQL / NETProvider

Firebird ADO.NET Data Provider
https://www.firebirdsql.org/en/net-provider/
Other
152 stars 62 forks source link

When BroadcastCollectionDisposed is processed NRE is thrown #1135

Closed cincuranet closed 8 months ago

cincuranet commented 10 months ago

The code touches FbConnection.Database after Dispose and we set these properties (actually _options) to null.

 at FirebirdSql.Data.FirebirdClient.FbConnection.get_Database() in C:\Users\Jiri\Documents\devel\NETProvider\tree\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbConnection.cs:line 205
   at Microsoft.EntityFrameworkCore.Diagnostics.Internal.RelationalConnectionDiagnosticsLogger.<BroadcastCollectionDisposed>g__ConnectionDisposed|23_0(EventDefinitionBase definition, EventData payload)
   at Microsoft.EntityFrameworkCore.Diagnostics.EventData.ToString()
   at Microsoft.EntityFrameworkCore.Diagnostics.Internal.FormattingDbContextLogger.Log(EventData eventData)
   at Microsoft.EntityFrameworkCore.Diagnostics.Internal.RelationalConnectionDiagnosticsLogger.BroadcastCollectionDisposed(IRelationalConnection connection, DateTimeOffset startTime, TimeSpan duration, Boolean async, EventDefinition`3 definition, Boolean diagnosticSourceEnabled, Boolean simpleLogEnabled)
   at Microsoft.EntityFrameworkCore.Diagnostics.Internal.RelationalConnectionDiagnosticsLogger.ConnectionDisposed(IRelationalConnection connection, DateTimeOffset startTime, TimeSpan duration)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.DisposeDbConnection()
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.ResetState(Boolean disposeDbConnection)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Dispose()
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.Dispose()
   at Microsoft.EntityFrameworkCore.DbContext.Dispose()
cincuranet commented 8 months ago

https://github.com/FirebirdSQL/NETProvider/issues/1018