Je développe une application C# qui exécute des requêtes de ~ 30 sql toutes les secondes ... J'ai plusieurs threads qui font cela. Mon problème est que lorsque j'essaie d'interroger le serveur SQL avec SELECT ....
il renvoie des résultats différents.Problème d'incompatibilité de connexion .NET/.NET Core et SQL Server
Exemple: Si exécuter à la fois SELECT * FROM Users
et SELECT * FROM Jobs
en même temps de différentes discussions que je reçois des réponses comme:
SELECT * FROM Users
->Job colums with Job values
SELECT * FROM Jobs
->User colums with User values
J'utilise Dapper comme ceci:
using (var connection = new SqlConnection(_msSqlProvider.ConnectionString))
{
connection.Open();
return connection.Query<User>(
@"SELECT JobId
FROM Users
WHERE Id = @userId
ORDER BY Id ASC",
new {userId});
}
Mes journaux d'application ressemblent à (c.-à-d. la requête retourne pas de données du modèle d'utilisateur):
Une exception est survenue lors de l'obtention de l'emploi de l'utilisateur: un constructeur par défaut sans paramètre ou une signature correspondante (System.Int32 Id, System.Int32 UserId, System.Decimal salaires, System.DateTime UpdatedAt) est nécessaire pour la matérialisation SampleApp.User
Mon application est très différent de ce complexe, mais cela devrait être bon comme exemple ...
ont peut-être un coup d'œil à ceci: https://stackoverflow.com/questions/21917836/connection-pool-one-process-many-threads –
L'exception dans votre journal d'application ne sont pas des jeux de résultats sur mauvais à partir des requêtes - il s'agit d'être capable d'instancier le 'new' type anonyme à l'exécution. –
Au lieu d'utiliser JobId dans votre requête de sélection, vérifiez avec select * que vous essayez de matérialiser avec votre type d'utilisateur si vous sélectionnez JobId –