Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Nach Update von EFCore 2.x auf 3.x bekomme ich Fehler
schuppsl
myCSharp.de - Member



Dabei seit:
Beiträge: 786

Themenstarter:

Nach Update von EFCore 2.x auf 3.x bekomme ich Fehler

beantworten | zitieren | melden

verwendetes Datenbanksystem: MSSql

Hallo Gemeinde, mal wieder was kurioses.
In meiner .NET Framework 4.7.2 Anwendung EFCore implementiert.
Das Lief mit EfCore 2.4 perfekt.
Habe nun auf EfCore 3.1.8. geupdatet.

Als erstes musste ich AsQueryable() einbauen, da .where in EfCore und Linq implementiert ist.
Alles lässt sich wunderbar kompilieren

Teste ich nun eine Methode, erhalte ich beim Aufruf einer Abfrage wie z.B.

weiche = Context.NlWeiche.AsQueryable().Where(w => w.Id == 2).Single();

Folgende Fehlermeldungen:
Fehler
Der Typeninitialisierer für "Microsoft.Data.SqlClient.TdsParser" hat eine Ausnahme verursacht.
Fehler
Die DLL "Microsoft.Data.SqlClient.SNI.x86.dll": Das angegebene Modul wurde nicht gefunden. (Ausnahme von HRESULT: 0x8007007E) kann nicht geladen werden.
Fehler
bei Microsoft.Data.SqlClient.TdsParser..ctor(Boolean MARS, Boolean fAsynchronous)
bei Microsoft.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout)
bei Microsoft.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance)
bei Microsoft.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, ServerCertificateValidationCallback serverCallback, ClientCertificateRetrievalCallback clientCallback, DbConnectionPool pool, String accessToken, SqlClientOriginalNetworkAddressInfo originalNetworkAddressInfo, Boolean applyTransientFaultHandling)
bei Microsoft.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
bei Microsoft.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
bei Microsoft.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
bei Microsoft.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
bei Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
bei Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
bei Microsoft.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
bei Microsoft.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
bei Microsoft.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
bei Microsoft.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry)
bei Microsoft.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry, SqlConnectionOverrides overrides)
bei Microsoft.Data.SqlClient.SqlConnection.Open(SqlConnectionOverrides overrides)
bei Microsoft.Data.SqlClient.SqlConnection.Open()
bei Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenDbConnection(Boolean errorsExpected)
bei Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected)
bei Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReader(RelationalCommandParameterObject parameterObject)
bei Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.Enumerator.InitializeReader(DbContext _, Boolean result)
bei Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](TState state, Func`3 operation, Func`3 verifySucceeded)
bei Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.Enumerator.MoveNext()
bei System.Linq.Enumerable.Single[TSource](IEnumerable`1 source)
bei Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.Execute[TResult](Expression query)
bei Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryProvider.Execute[TResult](Expression expression)
bei System.Linq.Queryable.Single[TSource](IQueryable`1 source)
bei .........RepWagen.cs: Zeile51

Die Meldung verstehe ich nicht...
Die Suche nach SNI.x86.dll hilft irgendwie auch nicht weiter...

Hat jemand ein Idee?
private Nachricht | Beiträge des Benutzers
schuppsl
myCSharp.de - Member



Dabei seit:
Beiträge: 786

Themenstarter:

beantworten | zitieren | melden

Es hat sich erledigt.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16234

beantworten | zitieren | melden

Wäre praktisch gewesen, wenn Du Dich mit den Breaking Changes von EF Core 3 beschäftigt hättest, bevor Du upgradest.

EFCore 3 arbeitet nicht mehr mit System.Data.SqlClient sondern mit Microsoft.Data.SqlClient.
Daher muss entsprechendes Paket ersetzt werden; dann ist auch der Fehler weg.

Tipp: beachte den Migrationspfad und die Empfehlungen.
Ist alles vom EF Team sauber dokumentiert ;-)
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
schuppsl
myCSharp.de - Member



Dabei seit:
Beiträge: 786

Themenstarter:

beantworten | zitieren | melden

Zitat von Abt
Wäre praktisch gewesen, wenn Du Dich mit den Breaking Changes von EF Core 3 beschäftigt hättest, bevor Du upgradest.
Ja-haaaa :)
Zitat von Abt
EFCore 3 arbeitet nicht mehr mit System.Data.SqlClient sondern mit Microsoft.Data.SqlClient.
Daher muss entsprechendes Paket ersetzt werden; dann ist auch der Fehler weg.
Ja.
Zitat von Abt
Tipp: beachte den Migrationspfad und die Empfehlungen.
Ist alles vom EF Team sauber dokumentiert ;-)
Yes.
private Nachricht | Beiträge des Benutzers
schuppsl
myCSharp.de - Member



Dabei seit:
Beiträge: 786

Themenstarter:

beantworten | zitieren | melden

Moin, ich hätte noch einen Nachschlag.

System.Data.SqlClient ist nicht mehr vorhanden, sondern Microsoft.Data.SqlClient.

Beim Ausführen (Debug) heißt es, dass die Anwendung nicht gestartet werden kann, aufgrund einer falschen Anwendungskonfiguration und ich solle doch mal in die Ereignisanzeige schauen.

Da steht dann:
Fehler
Microsoft.Data.SqlClient.SNI.x64.dll
Zwei oder mehr, vom Anwendungsmanifest direkt oder indirekt referenzierte Komponenten beinhalten Dateien mit demselben Namen.


Grund dafür sind diese Einträge in der [Programmname].manifest:
Zitat
<file name="Microsoft.Data.SqlClient.SNI.x64.dll" size="549256">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>FQwBjrY2O421eg/ESWk1/ek15S199tZ0MOq18dY4YNk=</dsig:DigestValue>
</hash>
</file>
<file name="Microsoft.Data.SqlClient.SNI.x64.dll" size="510840">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>Rmsqtz8i0rUFKcM4leepPhXDs28uU9XJJtOY6ooTTsM=</dsig:DigestValue>
</hash>
</file>
<file name="Microsoft.Data.SqlClient.SNI.x64.dll" size="549240">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>D/9ZSzuRrA2K0/QHaj0ZL+nr6gV3gJzpicX9cJB6Iwo=</dsig:DigestValue>
</hash>
</file>
<file name="Microsoft.Data.SqlClient.SNI.x86.dll" size="497024">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>Lu2OS1/HxJEtOVQdVh25zYLvDLjpJk17WnE+RHNoc2g=</dsig:DigestValue>
</hash>
</file>
<file name="Microsoft.Data.SqlClient.SNI.x86.dll" size="440696">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>fdxYToKw1/AzNQ/3sDJYl4OLmTgFp6nR1BP8QAMBquY=</dsig:DigestValue>
</hash>
</file>
<file name="Microsoft.Data.SqlClient.SNI.x86.dll" size="497016">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>5OVK8KFhaRyp8M0T/MHr0A+dyH45VKfsrj13rMFVnkE=</dsig:DigestValue>
</hash>
</file>


Lösche ich alle Einträge bis auf einen:
Zitat
Microsoft.Data.SqlClient.SNI.x64.dll
funktioniert alles.

Die Frage ist nun: Wie kommen diese Einträge (und so viele) in die Manifest Datei?
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16234

beantworten | zitieren | melden

Als Hinweis, da es in der Software-Welt viele Manifest-Dateien gibt:
schuppsl meint offenbar das Manifest, das von ClickOnce erstellt wird.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers