DB Core上的EF Core沒有.Include()方法

.net-core asp.net-core entity-framework-core

我目前完全無法調用.Include()和intellisense(在vscode中)似乎並不認為它存在。

現在經過很長一段時間搜索網絡後,我發現了這個:

在我的EF實現Generic存儲庫中找不到.Include()方法

這似乎表明.Include僅存在於System.Data.Entities中,僅適用於EF 5和6。

那麼我如何為EF核心中的實體加載我的列表屬性?

繼承我的背景

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's here there's absolutely no .Include method

    return result.ToList();
}

EF Core中不存在.Include嗎?

一般承認的答案

這是我正在調用該方法的文件中缺少引用的直接結果(雖然我不太清楚我是怎麼理解的......)

無論如何,添加:

using Microsoft.EntityFrameworkCore;

TsengSmit所說,做了訣竅。 (在我定義函數的文件中)

雖然為什麼有效但我不知道。我以為.include會自動通過DbSet提供。

謝謝! :)


熱門答案

如果你最終在這裡,EF 6或以下的用戶碰巧錯過OP實際提到這個就像我做的那樣,你想添加

using System.Data.Entity;

到你的班級。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow