Je crée une application Web avec les éléments suivants -
J'ai fait un modèle nommé User avec quelques propriétés comme ci-dessous -
<PackageReference Include="Microsoft.AspNetCore.App" /> <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.2.2" />
Ce que j'ai choisi est la première approche du modèle et la migration des données pour créer une table en conséquence
public async Task<User> Login(string userName, string password) { var user = await _context.Users. }
Mais chaque fois que j'essaie de trouver un utilisateur avec ce qui suit -
public DbSet<User> Users { get; set; }
Il ne me montre pas la méthode FirstOrDefaultAsync. Je ne comprends pas pourquoi il me montre comme ça?
Voici les versions que j'utilise pour le projet API -
public class User { public int Id { get; set; } public string UserName { get; set; } public byte[] PasswordHash { get; set; } public byte[] PasswordSalt { get; set; } }
3 Réponses :
Vous avez oublié d'ajouter la référence au noyau du framework d'entité 'using Microsoft.EntityFrameworkCore;'
Conseil: si vous appuyez sur CTRL + . il devrait afficher le correctif immédiat.
Je ne pense pas.
Avez-vous var user = wait _context.Users.FirstOrDefaultAsync () et frappé cette combinaison de touches et rien ne s'est affiché?
Oui, je fais cela mais je ne trouve pas la méthode FirstOrDefaultAsync ().
Peut-être que Visual studio a bugué et n'a pas pu suivre vos packages, essayez de nettoyer votre solution, fermez Visual Studio et rouvrez-le et essayez de créer à nouveau et appliquez plus tard la mention de la pointe dans la réponse
J'ai nettoyé Visual Studio Code et rouvert le projet. Mais cela ne montre toujours pas cette méthode .Mais cela m'a montré d'autres méthodes mais pas FirstOrDefault () et FirstOrDefaultAsync ()
Il n'existe pas de versions asynchrones des opérateurs LINQ tels que Where (...), OrderBy (...), etc. car ces méthodes ne font que construire l'arborescence d'expression LINQ et ne provoquent pas l'exécution de la requête dans la base de données.
Au cas où des noobs tels que je trébucherais là-dessus, j'avais simplement besoin d'ajouter:
using System.Linq;
Bienvenue dans stackoverflow. Ce serait mieux adapté comme commentaire et non comme question. Veuillez consulter: meta.stackexchange.com/questions/214173 / ...
Obtenez-vous la méthode
FirstOrDefault
? Si vous ajoutezvar user = _context.Students.FirstOrDefaultAsync()
et enusing Microsoft.EntityFrameworkCore;
, construisez votre projet, recevrez-vous une erreur?@Tao Zhou, il ne me montre pas FirstOrDefault. mais j'ai trouvé Add (), AddRange (), Find (), FindAsync () etc.
Existe-t-il une démo pour reproduire votre problème? Il doit exister avec
using Microsoft.EntityFrameworkCore;
.Oui, ça marche, merci pour votre aide.