Метод 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?
Ответы
Ответ 1
Это прямое следствие отсутствия ссылки в файле, где я звоню на метод (хотя я не совсем уверен, что понимаю, как...)
В любом случае, добавив:
using Microsoft.EntityFrameworkCore;
как предложил Ценг и Смит, сделал трюк. (в файле, в котором я определяю функцию)
Хотя почему это работает, я понятия не имею. Я думал, что.include будет автоматически доступен через DbSet.
Спасибо хоть! :)
Ответ 2
Если вы закончите здесь, пользователь EF 6 или ниже, и, случается, пропустите тот OP, который фактически упомянул об этом, как я, вы хотите добавить
using System.Data.Entity;
к вашему классу.
Ответ 3
Вот предыдущий ответ, который отслеживает эту проблему в EF7. Похоже, теперь оно "включено".