Je suis actuellement complètement incapable d'appeler .Include () et intellisense (dans vscode) ne semble pas penser qu'il existe.
Maintenant, après une longue recherche sur le Web, j'ai trouvé ceci:
Impossible de trouver la méthode .Include () dans mon EF implémentant le référentiel générique
ce qui semble suggérer que .Include n'existe que dans System.Data.Entities, qui n'est disponible que pour EF 5 et 6.
Alors, comment puis-je ardemment charger ma propriété de liste pour une entité dans le noyau EF?
voici mon contexte
public class Database : DbContext
{
//Set new datasources like this: public DbSet<class> name { get; set; }
public DbSet<Domain.Resource> Resources { get; set; }
public DbSet<Domain.ResourceType> ResourceTypes { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Filename=./something.db");
}
}
Voici les classes de données:
public class Resource
{
public int ResourceId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public int ResourceTypeId { get; set; }
public ResourceType ResourceType { get; set; }
}
public class ResourceType
{
public int ResourceTypeId { get; set; }
public string Name { get; set; }
public List<Resource> Resources { get; set; }
}
Ensuite, je fais quelque chose comme:
public List<ResourceType> GetAll()
{
var router = new Database();
var result = router.ResourceTypes.Include(rt => rt.Resources); //It's here there's absolutely no .Include method
return result.ToList();
}
Est-ce que .Include n'existe pas dans EF Core?
C'est une conséquence directe d'une référence manquante dans le fichier où je fais un appel à la méthode (même si je ne suis pas sûr de comprendre comment ...)
Quoi qu'il en soit, en ajoutant:
using Microsoft.EntityFrameworkCore;
comme Tseng et Smit suggéré, a fait l'affaire. (dans le fichier dans lequel je définis la fonction)
Mais pourquoi cela fonctionne, je n'en ai aucune idée. Je pensais que .include serait automatiquement disponible via le DbSet.
Merci quand même! :)
Si vous vous retrouvez ici, un utilisateur d'EF 6 ou inférieur et qu'il vous arrive de manquer que OP en fait mention comme moi, vous voulez ajouter
using System.Data.Entity;
à votre classe.
Ici est une réponse précédente qui suit ce problème dans EF7. Il semble qu'il soit désormais "inclus".