J'ai la configuration suivante mais je ne peux pas terminer la construction car j'obtiens une erreur obscure liée à la ligne 439 dans le fichier Blazor.MonoRuntime.targets
(MSB3073).
Cela signifie-t-il essentiellement que Entity Framework Core ne fonctionnera en aucun cas avec Blazor preview 6?
Détails:
- Blazor hébergé par Asp.net
- AspNetCore.Blazor (3.0.0-preview6.19307.2)
- Microsoft.EntityFrameworkCore (3.0.0-preview6.19304.10)
- Microsoft.EntityFrameworkCore.Design (3.0.0-preview6.19304.10)
- Microsoft.EntityFrameworkCore.SqlServer (3.0.0-preview6.19304.10)
Résolu via une solution de piratage!
D'une manière ou d'une autre, j'ai pu tout résoudre et faire fonctionner les choses de bout en bout. Je crois que la grande chose critique était:
* Assurez-vous que les projets client ET serveur Blazor ne font pas directement référence à Entity Framework
* Ne laissez pas le client Blazor référencer (directement ou indirectement) le projet avec les entités générées). Pour avoir accès aux modèles, je crée simplement un doublon des entités générées (et supprimé le "partiel" des classes qui ont été générées)
Une clarification est nécessaire ici, à droite:
Vous ne pouvez pas utiliser Entity Framework sur le projet Client de Blazor. Entity Framework est une technologie de serveur.
Vous pouvez utiliser Entity Framework sur le projet Serveur de votre application.
La communication entre votre côté client et votre côté serveur est généralement effectuée via des appels Http (service HttpClient), mais vous pouvez également utiliser SignleR.
Pour activer les appels Http, vous devez exposer les points de terminaison de routage Http ... Cela peut être activé en utilisant Web Api avec les points de terminaison requis. Vos méthodes exposées Web Api (méthodes des contrôleurs) peuvent accéder à la base de données directement (ou indirectement si vous définissez des référentiels, des services, etc.) via des objets Entity Framework et renvoyer les données interrogées aux méthodes appelantes (méthodes HttpClient).
Notez que dans ma réponse, je me réfère particulièrement aux applications côté client Blazor, mais c'est surtout vrai en ce qui concerne les applications côté serveur Blazor. Je peux simplement ajouter ici que dans les applications côté serveur Blazor, vous n'avez pas besoin d'utiliser Web Api car Blazor est exécuté sur le serveur. Dans un tel cas, vous pouvez définir un service normal pour récupérer les données de la base de données et les transmettre aux méthodes d'appel (aucun HttpClient n'est impliqué ici).
J'espère que cela t'aides..