Подтвердить что ты не робот

Метод EF Core no.Include() в DBset

В настоящее время я полностью не могу позвонить.Include() и intellisense (в vscode), похоже, не считают его существующим.

Теперь, после долгого поиска в Интернете, я нашел это:

Не найти метод.Include() в моем универсальном репозитории EF

что, по-видимому, предполагает, что.Include существует только в System.Data.Entities, который доступен только для EF 5 и 6.

Итак, как я могу загрузить свойство списка для объекта в ядре EF?

heres мой контекст

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");
    }
}

Вот классы данных:

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; }
}

Затем я делаю что-то вроде:

public List<ResourceType> GetAll()
{
    var router = new Database();

    var result = router.ResourceTypes.Include(rt => rt.Resources); //It here there absolutely no .Include method

    return result.ToList();
}

Не включает ли в EF Core?

4b9b3361

Ответ 1

Это прямое следствие отсутствия ссылки в файле, где я звоню на метод (хотя я не совсем уверен, что понимаю, как...)

В любом случае, добавив:

using Microsoft.EntityFrameworkCore;

как предложил Ценг и Смит, сделал трюк. (в файле, в котором я определяю функцию)

Хотя почему это работает, я понятия не имею. Я думал, что.include будет автоматически доступен через DbSet.

Спасибо хоть! :)

Ответ 2

Если вы закончите здесь, пользователь EF 6 или ниже, и, случается, пропустите тот OP, который фактически упомянул об этом, как я, вы хотите добавить

using System.Data.Entity;

к вашему классу.

Ответ 3

Вот предыдущий ответ, который отслеживает эту проблему в EF7. Похоже, теперь оно "включено".