2017-02-09 6 views
4

現在、完全に呼び出すことができません.Include()とintellisense(vscode)は存在しないと思われます。長い時間の後に今EFコア番号。DBsetのインクルード()メソッド

私は、この発見したウェブ検索:EF 5でのみ使用可能です.INCLUDEのみSystem.Data.Entitiesに存在することを示唆しているようだ

Not finding .Include() method in my EF implementing Generic repository

を、そして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"); 
    } 
} 

HERESにデータクラス:

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

それから私はのようなものです:.INCLUDEはEFコアに

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

存在しませんか?

+2

エラーメッセージに 'Ctrl + .'を打ってしまったので、Visual Studio 2015/2017は' Microsoft.EntityFrameworkCore'名前空間を使用してあなたを提案できますか? ;) – Tseng

+0

私はUbuntuでVisual Studioコードを使用しています – user3801839

+0

上記のコードを使用して 'Microsoft.EntityFrameworkCore;インテリセンスが見つからない場合でも、適切にコンパイルする必要があります。 – Smit

答えて

7

それだ私は、メソッドの呼び出しを作ってるんだファイルに不足している参照の直接の結果(私はどのように理解してかなりよく分からないのに...)を追加するとにかく

、:

using Microsoft.EntityFrameworkCore; 

のようにTsengSmitが提案されました。 (私は関数を定義するファイル内)

なぜ私は分かりませんが動作します。私は.includeがDbSetを通して自動的に利用できると思った。

ありがとうございます! :)

0

Hereは、この問題をEF7で追跡している前の回答です。今は「含まれている」ようです。

+0

申し訳ありませんが、.Include(文字列)ではなく.Include(t => t.property)を有効にする.Includeのオーバーロードを探していません。 2015年に利用可能だったすべてのアカウントでは、どうして私はそれにアクセスできないのですか?( – user3801839

+0

その[there](https://github.com/aspnet/EntityFramework/blob/dev/src/) VSCodeのインテリセンスは、通常のビジュアルスタジオよりも問題が多い可能性があります。必要な拡張機能がすべてインストールされていることを確認することから始めます。 – trevorc

+0

Hm。呼び出してみます。 EFコアのバージョン1.0以降はうまくいくはずです。しかし、Intellisenseには何があるのでしょうか?これまでの唯一の問題は、クラスの名前を変更するときです。プログラムを再起動します。 – user3801839