Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1677 connectés 

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  65  66  67  ..  75  76  77  78  79  80
Auteur Sujet :

[Topic unique] .Net @ Prog

n°2347866
varfendel
Posté le 13-03-2020 à 17:54:12  profilanswer
 

Reprise du message précédent :
Pour faire mes bindings côté js, je crée des inputs hidden à la main que je rajoute au dom.
Côté controller j'ai une méthode qui reçoit le post avec une List<ChildModel>.
 

Code :
  1. var id = uuidv4();
  2.             var hiddenFields = '<div id="_DocumentId_">';
  3.             hiddenFields += '@Html.Hidden(ParentModel.GetPropertyName(s => s.Children) + ".Index", "_DocumentId_" )';
  4.             hiddenFields += '@Html.Hidden(ParentModel.GetPropertyName(s => s.Children) + "[_DocumentId_]." + ChildModel.GetPropertyName(s => s.Prop1), "val1" )';
  5.             hiddenFields += '@Html.Hidden(ParentModel.GetPropertyName(s => s.Children) + "[_DocumentId_]." + ChildModel.GetPropertyName(s => s.Prop2), "val2" )';
  6.             hiddenFields += '</div>';
  7.             hiddenFields = hiddenFields.replace(/_DocumentId_/g, id);
  8.             $("#hiddenDocuments" ).append(hiddenFields);

mood
Publicité
Posté le 13-03-2020 à 17:54:12  profilanswer
 

n°2347894
Yor_le_Bou​rrin
Posté le 14-03-2020 à 09:35:54  profilanswer
 

Implosion du Sord a écrit :


Merci pour ce retour
Apprentissage en 1 mois, mais avais-tu des bases en JS ? Dev front ?


Full stack à dominante back, voire dev système. Mais j'aime bien JS je dois avouer, donc j'avais les bonnes bases : manipulation dom + utilisation des prototypes. Du coup comme j'ai dit le plus long a été l'apprentissage/mise en place de l'écosystème npm, notamment webpack qui est assez touffu. Si tu as déjà fait du JS et que l'archi du projet est déjà posée, ça prendra nettement moins qu'un mois.

n°2347967
fugacef
Posté le 14-03-2020 à 18:23:54  profilanswer
 

Après il est possible d'importer vuejs directement comme fichier JS dans ton fichier HTML, pas besoin de toute la tuyauterie webpack. Sur un projet legacy généralement t'as pas trop le choix :o

n°2348021
Yor_le_Bou​rrin
Posté le 14-03-2020 à 20:51:58  profilanswer
 

Yep, j'ai fait les deux d'ailleurs. Pas à recommander : tu perds du coup les dépendances npm ( [:obvious] ), et la transpilation. Mais bien pratique pour des interfaces complexes : dans mon cas un dashboard et un arbre avec drag&drop. Le reste du projet marchant nickel avec cshtml (parties crud), mais pas eu le courage de migrer :)


Message édité par Yor_le_Bourrin le 14-03-2020 à 20:52:17
n°2348898
TotalRecal​l
Posté le 21-03-2020 à 07:19:03  profilanswer
 

Tiens, je pose là une petite dépendance que j'ai utilisé récemment.
Quand on bosse avec des Enums et dessus des attributs (Description, Name...) ou des modificateurs comme Flags, on se retrouve vite à avoir une tripotée de méthodes d'extensions et/ou de Helpers pour faire ce qu'on veut. Genre les flags avec juste les méthodes natives et opérateurs binaires c'est une plaie à manipuler et relire.
Ben on trouve tout ça, et bien plus encore, sous une forme testée et optimise dans cette sympathique librairie : https://github.com/TylerBrinkley/Enums.NET

 

Et vu la racine de son github, c'est pas son seul projet dans le genre.


Message édité par TotalRecall le 21-03-2020 à 07:23:32

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
n°2351579
juninho38
Posté le 12-04-2020 à 17:39:51  profilanswer
 

Bonjour,

 

j'ai un peu de temps ces dernier temps  :D
Je me suis dis pourquoi ne pas refaire un peu de dev comme à l'époque.
J'ai donc voulu télécharger VS Community 2019.
Je privilégie le téléchargement pour une installation offline
J'ai donc suivi d'abord ceci: https://docs.microsoft.com/fr-fr/vi [...] ew=vs-2019
Puis cela car cela correspond plus à mon besoin: https://docs.microsoft.com/fr-fr/vi [...] ocal-cache
Le téléchargement et l'installation de l'utilitaire se passe très bien.
Mais les commande ne fonctionnent pas. (mode utilisateur ou admin)
J'ai un message d'erreur de ce type (pas la formulation exacte car je ne suis pas sur le bon PC):

Code :
  1. vs_community.exe n'est pas reconnu comme une commande interne ou externe... (avec une fin de message que je n'ai plus en tête
 

Des infos là dessus svp ?
Merci

Message cité 1 fois
Message édité par juninho38 le 12-04-2020 à 17:54:44
n°2351580
Anonyme_Co​de
Posté le 12-04-2020 à 17:59:58  profilanswer
 

juninho38 a écrit :

Bonjour,

 

j'ai un peu de temps ces dernier temps :D
Je me suis dis pourquoi ne pas refaire un peu de dev comme à l'époque.
J'ai donc voulu télécharger VS Community 2019.
Je privilégie le téléchargement pour une installation offline
J'ai donc suivi d'abord ceci: https://docs.microsoft.com/fr-fr/vi [...] ew=vs-2019
Puis cela car cela correspond plus à mon besoin: https://docs.microsoft.com/fr-fr/vi [...] ocal-cache
Le téléchargement et l'installation de l'utilitaire se passe très bien.
Mais les commande ne fonctionnent pas.
J'ai un message d'erreur de ce type (pas la formulation exacte car je ne suis pas sur le bon PC):

Code :
  1. vs_community.exe n'est pas reconnu comme une commande interne ou externe... (avec une fin de message que je n'ai plus en tête

 

Des infos là dessus svp ?
Merci

 

Visiblement vs_community ne se trouve dans aucun des chemins listés dans ta variable PATH. Donc soit tu ajoutes le dossier contenant vs_community dans ton PATH, soit tu changes le dossier courant de ton cmd pour celui contenant vs_community.exe.

 

(Et j'en profite pour poser mon petit drap [:gaga drapal])

n°2351583
juninho38
Posté le 12-04-2020 à 19:12:42  profilanswer
 

Ah oui, effectivement.
Tout fonctionne.
Parfait, merci

n°2353908
Vibidoo
Posté le 17-05-2020 à 18:59:29  profilanswer
 

salut  
 
certain d'entre vous utilisent t'ils monodevelop sous Linux ??  
 
je viens de l'installer sur une nouvelle installation et pas moyen de lancer un simple :  
 
using System;
 
namespace exo5
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Hello World!" );
        }
    }
}
 
sous la gui monodevelop , en fait il me sort :  
the name "Console" does not exist in current context.  
 
Mais en terminal je lance un msc Program.cs et il me le compile bien et je peux lancer le .exe correspondant.  
 
J'aimerais vraiment re-passer sous linux, j'ai débuté la programmation en fin d"année 2019 et j'ai plutot bien avancé avec V community.  
Mais mon OS de coeur reste tout de même Linux ( Debian\ Gentoo )
 
Si vous aviez une idée, merci bcp  


---------------
Contribuables associés - Arretons les dérives
n°2353909
Yor_le_Bou​rrin
Posté le 17-05-2020 à 19:12:15  profilanswer
 

Désolé de ne pas vraiment répondre à la question (jamais utilisé mono), mais tu ne peux pas passer à dotnet core ?

 

Dans le cas contraire je suis curieux de savoir ce qui bloque, à ma connaissance mono n'a pas de fonction que dotnet core n'aurait :jap:

mood
Publicité
Posté le 17-05-2020 à 19:12:15  profilanswer
 

n°2353910
Vibidoo
Posté le 17-05-2020 à 19:45:19  profilanswer
 

que veux tu dire par passer par Dotnet core ?
rester sur VS community (Windows )?


---------------
Contribuables associés - Arretons les dérives
n°2353911
Yor_le_Bou​rrin
Posté le 17-05-2020 à 20:07:10  profilanswer
 

Non, utiliser le sdk dotnet core (multi plateforme) au lieu de mono.

 

L'IDE n'a pas d'importance après : sous linux vs code marchera bien, mais tu peux prendre  vi si ça t'amuse. Tu peux ensuite construire tes applis via CLI, typiquement "dotnet new"  pour initialiser un nouveau projet ou "dotnet build" pour le construire.

n°2353912
Anonyme_Co​de
Posté le 17-05-2020 à 20:17:04  profilanswer
 

+1

 

VS Code + DotNet Core me semble le moyen le plus simple et le plus pérenne de faire .net sous Linux

n°2353913
Vibidoo
Posté le 17-05-2020 à 21:26:44  profilanswer
 

ah ok , je ne connaisssais pas, je vais regarder par la  
 
merci merci


---------------
Contribuables associés - Arretons les dérives
n°2356400
DiB91
Bwaaaaaaah
Posté le 18-06-2020 à 17:18:42  profilanswer
 

Coucou :)
 
Messieurs, quelle est la best practice à l'heure actuelle pour générer des fichiers Excel (Open XML, .xlsx) relativement simples ?
 
Contraintes :
- environnement .NET Framework 4.8 (pas de Core, pas de Standard, pas de web)
- base de données MS SQL Server pour la source et je passerai par EntityFramework pour récupérer les résultats de mes procédures stockées et les ranger dans les IEnumerable<T> / List<T>
- ça sera une appli console qui tournera en tâche planifiée à intervalles réguliers (quotidien)
- budget financier : 0€
- budget temps : 5 jours
 
Il y a 5~7 ans, j'aurai sorti la carte ClosedXML voire OpenXML SDK, mais il y a peut être mieux désormais ? :)


---------------
La DiBerie | Rehost | Link
n°2356403
DiB91
Bwaaaaaaah
Posté le 18-06-2020 à 17:47:07  profilanswer
 

Ok, merci pour ta réponse :jap:
L'avantage de ClosedXML c'est que je dois encore pouvoir retrouver des briques (création du workbook, filestream du classeur etc...).
 
Non en effet, ce sont des rapports quotidiens, faits sur le pouce pour une analyse vite fait. Un foreach sur des items en base de données avec un petit cumul sur la semaine ça ira très bien dans une feuille de calcul.


---------------
La DiBerie | Rehost | Link
n°2356404
ixemul
Nan mais sans blague ! ⚡
Posté le 18-06-2020 à 18:21:06  profilanswer
 

Pourquoi ne pas utiliser Dapper, plus light qu'Entity ?


---------------
VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk
n°2356546
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 21-06-2020 à 11:56:50  profilanswer
 

Pour Excel, m'étant intéressé récemment au sujet, je suis tombé sur EPPlus : https://github.com/EPPlusSoftware/EPPlus
 
Et +1 pour Dapper.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°2356547
Yor_le_Bou​rrin
Posté le 21-06-2020 à 15:13:25  profilanswer
 

Ca a quoi comme avantage Dapper sur EF Core ? Le côté light n'est pas pertinent dans mes use-case (je n'en suis pas à quelques Mo dans mes containers...). Et les benchmarks que j'ai vu étaient assez orientés, genre comparent une requête directe pour Dapper vs du linq pour EF, une base avec 100 lignes etc.

n°2356548
DiB91
Bwaaaaaaah
Posté le 21-06-2020 à 15:22:26  profilanswer
 

Merci pour vos réponses.

 

Pourquoi EF (classique, le projet est en .NET Framework 4.8) au lieu de Dapper ?
Tout simplement parce que le projet doit être le plus rapidement terminé, et que le temps que je me renseigne sur Dapper, j'aurai déjà mon EDMX, mes liens entre projets et mes premières requêtes Linq écrites et fonctionnelles :jap:

 

Sur un projet perso, avec du temps, j'aurai déjà commencé par du Core, et je me serai ensuite posé pour voir ce qui se fait d'autres qu'EF :jap:

 

Concernant EPPlus
Le fait qu'il soit devenu payant le disqualifie d'office :jap:


Message édité par DiB91 le 21-06-2020 à 15:23:04

---------------
La DiBerie | Rehost | Link
n°2356553
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 21-06-2020 à 17:26:22  profilanswer
 

Yor_le_Bourrin a écrit :

Ca a quoi comme avantage Dapper sur EF Core ? Le côté light n'est pas pertinent dans mes use-case (je n'en suis pas à quelques Mo dans mes containers...). Et les benchmarks que j'ai vu étaient assez orientés, genre comparent une requête directe pour Dapper vs du linq pour EF, une base avec 100 lignes etc.


À titre perso, c'est surtout pour la simplicité d'utilisation. Une méthode d'extension sur DbConnection et basta. Les ORM qui génèrent eux-mêmes le SQL c'est pas ce que j'affectionne, je trouve plus clair que le SQL soit dans le code.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°2356555
ixemul
Nan mais sans blague ! ⚡
Posté le 21-06-2020 à 19:40:09  profilanswer
 

Il y a que dalle à apprendre pour dapper, tu ponds un POCO qui reçoit le résultat de ta requête et c'est terminé ;)


---------------
VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk
n°2356556
DiB91
Bwaaaaaaah
Posté le 21-06-2020 à 20:11:07  profilanswer
 

Ah !
Faudrait que je regarde  :love:
Comment se fait le mapping des champs et des types ?
C'est des SQL Adapter des années 90 ?


---------------
La DiBerie | Rehost | Link
n°2356557
Yor_le_Bou​rrin
Posté le 21-06-2020 à 20:14:59  profilanswer
 

OK donc c'est plus pour la simplicité, argument valable effectivement :jap:

 

Mon souci c'est que vu ce que certains prestas ou même dans ma boite sont capables de pondre niveau SQL, le linq to SQL d'EF est pas forcément moins perf... A condition de ne pas être en lazy loading [:tinostar]. Merci d'ailleurs à EF core d'être en eager par défaut :D

n°2356559
ixemul
Nan mais sans blague ! ⚡
Posté le 21-06-2020 à 20:29:59  profilanswer
 

DiB91 a écrit :

Ah !
Faudrait que je regarde :love:
Comment se fait le mapping des champs et des types ?
C'est des SQL Adapter des années 90 ?


Pour les champs le mapping se fait par nom de colonne ou d'alias dans la requête. Pour le type, il faut que ça colle un minimum (mais ça marche avec un dynamic [:brendaline:1] )


Message édité par ixemul le 21-06-2020 à 20:30:35

---------------
VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk
n°2356560
fugacef
Posté le 21-06-2020 à 21:28:53  profilanswer
 

Je trouve que EF c'est très efficace si tu fais du Code First, sinon effectivement Dapper fait très bien le taf  :jap:

n°2356561
DiB91
Bwaaaaaaah
Posté le 21-06-2020 à 22:29:23  profilanswer
 

Merci à vous 2, je tâcherai d'y jeter un oeil quand même, ne serait-ce que pour ma culture perso :jap:


---------------
La DiBerie | Rehost | Link
n°2356565
ixemul
Nan mais sans blague ! ⚡
Posté le 22-06-2020 à 10:28:06  profilanswer
 

j'ignorais qu'EPPlus était passé sous license commerciale :/
 
Mais avec la dernière version LGPL : https://github.com/JanKallman/EPPlus
 
ça passerait pas ?
 
Car perso, les dernières fois où je devais faire des extract excel, le couple Dapper/EPPlus était terrible d'efficacité en terme de rapidité de mise en oeuvre ;)


Message édité par ixemul le 22-06-2020 à 10:29:15

---------------
VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk
n°2356566
DiB91
Bwaaaaaaah
Posté le 22-06-2020 à 10:42:32  profilanswer
 

Pour la version commerciale, c'est sûr que c'est mort.
Ici (malheureusement) l'IT c'est système D, faut pas que ça coûte.
Déjà la licence Visual Studio 2017 Pro en 2018 je me prends des tacles à chaque réunion/séminaire :love:
 
Par contre si y a une version LGPL pourquoi pas, d'autant que c'est destiné à de l'interne, pour monitorer un process.
 
Le seul et dernier souci va donc être de le temps de prise en main du truc :jap:
 
En tout cas, merci pour vos réponses les gars.
Ca me donne envie de bricoler un peu de mon côté pour découvrir.


---------------
La DiBerie | Rehost | Link
n°2357277
ov3rflow
Overrage
Posté le 03-07-2020 à 13:44:49  profilanswer
 

Yor_le_Bourrin a écrit :

OK donc c'est plus pour la simplicité, argument valable effectivement :jap:
 
Mon souci c'est que vu ce que certains prestas ou même dans ma boite sont capables de pondre niveau SQL, le linq to SQL d'EF est pas forcément moins perf... A condition de ne pas être en lazy loading [:tinostar]. Merci d'ailleurs à EF core d'être en eager par défaut :D


 
 
Fini les missions ou tu passes pour un héro en virant tous les lazy loading  :(

n°2360963
Implosion ​du Sord
Fesseur de chameaux
Posté le 31-08-2020 à 10:58:54  profilanswer
 

Bonjour à tous
 
Utilisez-vous EF Core 3 ? Je suis en train de faire une migration de projet .Net Core 2.2 vers 3.1 et je rencontre deux problèmes sans vraiment arriver à trouver de réponse sur le net : mes recherches tournent en rond.Je ne connais pas grand chose à Entity Framework (et globalement, je n'aime vraiment pas les ORM... mais ça on s'en moque car ça change pas mon soucis)Ah et pour info je viens d'arriver sur ce projet chez un nouveau client, donc je vais pas tout refaire de suite.
 
Mon premier soucis est que j'obtiens à de nombreux moment le message suivant, qui semble plutôt explicite...

Citation :

A second operation started on this context before a previous operation completed


... sauf que je n'arrive pas à trouver quels sont ces requêtes concurrentes : comment procéder ?
J'ai vérifié que toutes les méthodes async étaient bien await.
Notons que j'ai diminué le nombre d’occurrence de ce soucis en passant l'enregistrement de mon dbContext de Scoped à Transcient, même si ça ne me plait pas trop... puis en passant l'enregistrement de tous les repository également en Transcient, le problème semble ne plus se produire.
Auriez-vous des suggestions ?
 
------------------
 
Second soucis : j'ai quelques requêtes EF Linq qui ne passent plus en exécution server-side (>'could not be translated') alors qu'elles devraient être supportés : cela concerne des queries utilisant .Contains() dans leur expression. Exemple :

Code :
  1. public virtual async Task<IDictionary<TPrimaryKey, TEntity>> GetByIdAsync(IEnumerable<TPrimaryKey> ids)
  2. {
  3.   var objects = await _dbContext.Set<TEntity>().Where(r => ids.Contains(r.id)).ToListAsync()
  4.   return objects.ToDictionary(x => x.Id);
  5. }


J'ai pour le moment contourné le soucis en faisant une évaluation client-side via await _dbContext.Set<TEntity>().ToListAsync() puis en appliquant un .Contains() sur le résultat, mais on perd beaucoup niveau performances puisque toute la table est ramenée dans l'appli.
Quand je cherche des infos sur ce soucis, je trouve bien sur github des bugs côté EF Core sur le .Contains() mais tous semblent avoir été résolus.
Des suggestions ?


---------------
[VDS]AIO Fractal Design Celsius S36 | Carte Wifi N Intel 5100 mPCIe | divers accessoire boitier Fractal Design | Away from keyboard, close to your breast
n°2360965
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 31-08-2020 à 11:09:10  profilanswer
 

Faut voir si t'as besoin du scope "Scoped" dans ton appli ; https://docs.microsoft.com/en-us/as [...] -lifetimes
En gros, l'utilisation de Scoped peut poser des soucis si tu fais des singletons ou que tu fais du static dans tes instances Scoped (cf la doc ci-dessus). Donc ton pb pourrait venir de là. Utiliser Transient ne pose pas de souci particulier, on l'utilise beaucoup chez nous.
Après, pour un contexte de base de données, ça peut avoir du sens de l'enregistrer en tant que Singleton aussi non ? Mais dans ce cas, ne pas stocker la connexion à la DB comme static ou quoi dans ton instance.

 

Aucune idée pour la 2ème question en revanche.

 

EDIT : toujours pour la 1ère question, ce post de SO illustre bien les différences de scope : https://stackoverflow.com/questions [...] ifferences Notamment entre Scoped et Transient, qui vont se marcher sur les pieds entre 2 services pour une même requête si tu as du static dans ton instance.

 

EDIT 2 : ah ba : https://entityframework.net/knowled [...] -completed


Message édité par Taiche le 31-08-2020 à 11:13:52

---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°2360967
Implosion ​du Sord
Fesseur de chameaux
Posté le 31-08-2020 à 11:18:06  profilanswer
 

Merci Taiche
Je vais déjà lire ça, c'est vrai que ce n'est pas une notion que je maitrise vraiment ça pour le coup...


---------------
[VDS]AIO Fractal Design Celsius S36 | Carte Wifi N Intel 5100 mPCIe | divers accessoire boitier Fractal Design | Away from keyboard, close to your breast
n°2360968
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 31-08-2020 à 11:20:21  profilanswer
 

Ba j'avoue qu'on utilise très peu (jamais ?) Scoped dans nos applis ici, donc j'en savais pas beaucoup plus avant de lire les liens ci-dessus :D


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°2360969
Yor_le_Bou​rrin
Posté le 31-08-2020 à 11:23:03  profilanswer
 

1er point : ça ressemble à un pb de parallélisme : ton repository doit appeler dans 2 méthodes différentes le contexte, qui est partagé. Essaie avec un lock pour voir. Perso j'utilise Mediatr, ça évite ce souci.
 
2° point : pas de souci de mon côté, mais je suis sous EF 3.1. Visiblement un bug existe en 3.0, je ne sais pas si c'est ton cas. A voir aussi le type de ton TPrimaryKey en pratique.

n°2360972
Implosion ​du Sord
Fesseur de chameaux
Posté le 31-08-2020 à 11:32:58  profilanswer
 

Yor_le_Bourrin a écrit :

1er point : ça ressemble à un pb de parallélisme : ton repository doit appeler dans 2 méthodes différentes le contexte, qui est partagé. Essaie avec un lock pour voir. Perso j'utilise Mediatr, ça évite ce souci.


Je continue d'investiguer. Faut que je voie comment activer les logs verbeux pour EF, ça devrait peut-être m'aiguiller ?
 

Yor_le_Bourrin a écrit :

2° point : pas de souci de mon côté, mais je suis sous EF 3.1. Visiblement un bug existe en 3.0, je ne sais pas si c'est ton cas. A voir aussi le type de ton TPrimaryKey en pratique.


Dans l'un de mes cas de crash, IEnumerable<TPrimaryKey> est un tableau de string (System.String[])
Je suis avec EF Core 3.1.7, le bug ne devrait plus exister. Il faudrait que je reproduise le cas dans un POC pour le soumettre je pense...
 
 
EDIT : texte edité -> c'est IEnumerable<T> qui est un tableau de string et non T qui est un tableau de string

Message cité 1 fois
Message édité par Implosion du Sord le 31-08-2020 à 15:13:07

---------------
[VDS]AIO Fractal Design Celsius S36 | Carte Wifi N Intel 5100 mPCIe | divers accessoire boitier Fractal Design | Away from keyboard, close to your breast
n°2360975
Yor_le_Bou​rrin
Posté le 31-08-2020 à 11:46:41  profilanswer
 

Implosion du Sord a écrit :


Je continue d'investiguer. Faut que je voie comment activer les logs verbeux pour EF, ça devrait peut-être m'aiguiller ?


Perso j'encadrerais déjà de logs les requêtes avant d'activer les logs d'EF. Tu verras déjà l'enchainement et pourras confirmer si c'est deux appels en //. Après je dois avouer que je ne sais pas si les logs EF sont verbeux, peut-être que ça reste lisible ?
 
 

Implosion du Sord a écrit :


Dans l'un de mes cas de carsh, <TPrimaryKey> est un tableau de string
Je suis avec EF Core 3.1.7, le bug ne devrait plus exister. Il faudrait que je reproduise le cas dans un POC pour le soumettre je pense...


Avec le string[] je vois mal comment ça pourrait être traduit en SQL, pour moi c'est juste pas supporté. Si tu as un int / Guid pour TPrimaryKey et toujours le problème, là ça sera un bug du framework effectivement.

n°2360988
Implosion ​du Sord
Fesseur de chameaux
Posté le 31-08-2020 à 14:24:53  profilanswer
 

Yor_le_Bourrin a écrit :


Perso j'encadrerais déjà de logs les requêtes avant d'activer les logs d'EF. Tu verras déjà l'enchainement et pourras confirmer si c'est deux appels en //. Après je dois avouer que je ne sais pas si les logs EF sont verbeux, peut-être que ça reste lisible ?


C'est ce que j'aimerai éviter vu la taille de l'app  :sweat: mais j'ai peur de ne pas pouvoir y échapper
 

Yor_le_Bourrin a écrit :


Avec le string[] je vois mal comment ça pourrait être traduit en SQL, pour moi c'est juste pas supporté. Si tu as un int / Guid pour TPrimaryKey et toujours le problème, là ça sera un bug du framework effectivement.


ça se traduit simplement par :

Code :
  1. SELECT column_name(s)
  2. FROM table_name
  3. WHERE column_name IN ('value1', 'value2', ...);


---------------
[VDS]AIO Fractal Design Celsius S36 | Carte Wifi N Intel 5100 mPCIe | divers accessoire boitier Fractal Design | Away from keyboard, close to your breast
n°2360990
Yor_le_Bou​rrin
Posté le 31-08-2020 à 14:41:31  profilanswer
 

Implosion du Sord a écrit :


ça se traduit simplement par :

Code :
  1. SELECT column_name(s)
  2. FROM table_name
  3. WHERE column_name IN ('value1', 'value2', ...);



 
Non, là column_name est un VARCHAR, donc TPrimaryKey est dans ce cas un string, ce qui est en effet simple. Si TPrimaryKey est un string[], ça devient impossible. Pour simplifier : GetByIdAsync(IEnumerable<string> ids) est OK pour la translation de requête, GetByIdAsync(IEnumerable<string[]> ids) ne l'est pas


Message édité par Yor_le_Bourrin le 31-08-2020 à 14:42:05
n°2360992
Implosion ​du Sord
Fesseur de chameaux
Posté le 31-08-2020 à 15:10:54  profilanswer
 

heu... oui, non, oui... je suis tout à fait d'accord avec toi mais en fait j'ai dit un bêtise   [:kapukapu]  
Ce n'est pas TPrimaryKey qui est de type System.String[] mais bien IEnumerable<TPrimaryKey> ids


---------------
[VDS]AIO Fractal Design Celsius S36 | Carte Wifi N Intel 5100 mPCIe | divers accessoire boitier Fractal Design | Away from keyboard, close to your breast
n°2360995
Yor_le_Bou​rrin
Posté le 31-08-2020 à 15:39:15  profilanswer
 

Ca commence à être tendu donc. Dernière hypothèse TEntity.id est bien un string aussi dans ce cas ? Dans le cas contraire, possible que le cast ne soit pas géré. Genre string[].Contains(string) se traduit, string[].Contains(object) non

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  65  66  67  ..  75  76  77  78  79  80

Aller à :
Ajouter une réponse
 

Sujets relatifs
service web REST en VB.NET HeySpreadRequete Access avec paramètres, éxécutée en VB .Net
impersonalisation sous ASP.NET[Topic Unique] les blagues pourries de harko et florentg
Generation d'un GIF en ASP.NETAppeler un service web .NET sécurisé en Java
Prog Visual Basic "periodicité"[Oracle] Temps d'execution de requete tres long par rapport au .NET
[VB.NET] Lister des imprimantes réseauxFusion de résultats de requêtes dans une unique Table
Plus de sujets relatifs à : [Topic unique] .Net @ Prog


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR