手动设置Web API项目不检索数据

时间:2015-03-03 21:42:48

标签: c# asp.net asp.net-web-api

我刚刚创建了一个VS 2013 WebApi 2.0项目。我添加了一个DataContext并定义了一个DbSet和Model。我添加了一个控制器来测试它,但我没有得到任何数据。我做了很多次,但我无法弄清楚我在做什么。

我的DataContext

public class DriverAlertContext : DbContext
{
    public DriverAlertContext() : base("DefaultConnection") { }
    public DbSet<Companies> Companies { get; set; }
    public DbSet<Drivers> Drivers { get; set; }
    public DbSet<Vehicles> Vehicles { get; set; }

}

我的控制器

[HttpGet]
public IEnumerable<Companies> Get()
{
   var x = db.Companies;

   return x;
}

我得到一个空集[]作为回复。当我浏览数据表时,我看到了数据。我的连接字符串是正确的。我忘记了什么?

1 个答案:

答案 0 :(得分:0)

您的问题似乎是懒惰的评价。实体框架实际上并没有从数据库中提取任何内容,直到您通过迭代set或调用dbset上的load方法(或许多其他可能的东西)来请求它。

调用ToList是一种简单的方法,可以强制Entity Framework执行查询并将数据从数据库中提取到内存中。

尝试

db.Companies.Select(x=>x).ToList();