web-dev-qa-db-ja.com

エンティティフレームワークdbsetを使用してすべての行を取得する

次のタイプの構文を使用して、テーブルからすべての行を選択します。

public IQueryable<Company> GetCompanies()
{
    return DbContext.Set<Company>()
    .// Select all
}

EFがまったく新しいので、私を許してください。

27
Wesley Skeen

Set<T>()は既にIQueryable<T>であり、テーブルからすべての行を返します

public IQueryable<Company> GetCompanies()
{
    return DbContext.Set<Company>();    
}

また、生成されたDbContextには、各テーブルの名前付きプロパティがあります。 DbContext.Companiesを探します-DbContext.Set<Company>()と同じです

38

これを行う通常の方法は、dbContextをインスタンス化することです。

例えば:

public IQueryable<Company> GetCompanies()
{
    using(var context = new MyContext()){ 
        return context.Companies;
    }
}

CodeFirst Entityフレームワークの使用に関する多くの優れたチュートリアルがあります(DbContextがあり、新しい場合は使用していると思います)。

18
Luke McGregor