使用实体框架dbset获取所有行

Wes*_*een 27 c# entity-framework dbset

我想使用以下类型的语法从表中选择所有行

public IQueryable<Company> GetCompanies()
{
    return DbContext.Set<Company>()
    .// Select all
}
Run Code Online (Sandbox Code Playgroud)

请原谅我,因为我对EF完全不熟悉

Ser*_*kiy 40

Set<T>()已经IQueryable<T>并且它返回表中的所有行

public IQueryable<Company> GetCompanies()
{
    return DbContext.Set<Company>();    
}
Run Code Online (Sandbox Code Playgroud)

还会生成DbContext每个表的命名属性.寻找DbContext.Companies- 它与DbContext.Set<Company>()相同


Not*_*ple 18

执行此操作的常规方法是实例化dbContext.

例如:

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

有很多关于使用CodeFirst Entity框架的好教程(如果你有DbContext并且是新的,我假设你正在使用它)


小智 7

我更喜欢清单上的工作,也有所有关系在这里

例如:

public List<Company> GetCompanies()
{
    using (var context = new MyContext())
    {
        return context.Companies.ToList();
    }
}
Run Code Online (Sandbox Code Playgroud)